Idea vim插件配置

454 阅读1分钟

vim配置

" =========== vim settings ===========
set scrolloff=2
set mouse=a
set incsearch
set hlsearch
set number
set ignorecase
set smartcase
set visualbell
set nrformats
set wrapscan
set matchpairs
set gdefault
set showmode
set showcmd
" IdeaVim only commands:
set clipboard=ideaput
" set clipboard+=unnamedplus
set ideamarks
set ideajoin

设置插件

let mapleader="\<space>"
" ========== plugins ===========
" :NERDTree
" :NERDTreeClose
" :NERDTreeFind
" :NERDTreeRefreshRoot
" :NERDTreeFind<CR>
" :NERDTreeFocus<cr>
set NERDTree
map <leader>n :NERDTreeToggle<CR>
map <c-t> :NERDTreeFocus<CR>

set surround
set easymotion
set highlightedyank
set sneak

Plug 'tpope/vim-commentary'
Plug 'dbakker/vim-paragraph-motion'
" Plug 'tommcdo/vim-exchange'
" Plug 'vim-scripts/ReplaceWithRegister'
set which-key
" set notimeout
set timeoutlen = 5000

"set keep-english-in-normal "keep-english-in-normal enable auto-switch feature"
" keep-english-in-normal-and-restore-in-insert "restore input method when return insert mode."
" nokeep-english-in-normal-and-restore-in-insert "keep auto-switch feature, but doesn't restore input method when return insert mode"
" nokeep-english-in-normal "disable auto-switch feature"

绑定idea快捷键

" =========== map action ===========
" quick open
map <leader>i <action>(GotoImplementation)
map <leader>c <action>(GotoClass)
map <leader>f <action>(GotoFile)
map <leader>a <action>(GotoAction)
map <leader>s <action>(GotoSymbol)
map <leader>t <action>(GotoTypeDeclaration)
map <leader>u <action>(FindUsages)

map <leader>e <action>(GotoNextError)
map <leader>E <action>(GotoPreviousError)

map <c-i> <action>(Forward)
map <c-o> <action>(Back)

map <leader><c-i> <action>(ImplementMethods)

" bookmark "
map <leader><c-b> <action>(ToggleBookmark)
map <leader>b <action>(ShowBookmarks)

"Debug"
map <leader><c-d> <action>(ChooseDebugConfiguration)
map <leader>p <action>(ViewBreakpoints)
map <leader><c-p> <action>(ToggleLineBreakpoint)
map <leader>g <action>(StepOver)
map <leader>dg <action>(Resume)
map <leader>di <action>(StepInto)
map <leader>do <action>(StepOut)
map <leader>dc <action>(RunToCursor)
map <leader>dd <action>(Debugger.PopFrame)
map <leader>dr <action>(Debugger.ForceEarlyReturn)
map <leader>du <action>(UpdateRunningApplication)

" files
map <leader>q <action>(CloseContent)
map <leader>w <action>(SaveAll)

" map \
map \e <action>(RecentFiles)
map \t <action>(QuickChangeScheme)
map \s <action>(SelectIn)
map \g <action>(ActivateVersionControlToolWindow)
map \c <action>(ActivateCommitToolWindow)
map \d <action>(ActivateDebugToolWindow)


"HideActiveWindow ,"RestoreDefaultLayout, "HideAllWindows
map <leader>h <action>(HideAllWindows)
map <leader>l <action>(JumpToLastWindow)

map <c-p> <action>(ParameterInfo)

" map g
" map gc <action>(CommentByLineComment)
map gq <action>(ReformatCode)
map gQ  <action>(ShowReformatFileDialog)
map gh <action>(ShowErrorDescription)
map gm <action>(ShowIntentionActions)
" navigate
map gj gT
map gk gt

"=========== normal mode ===========
nnoremap H ^
nnoremap L $
nnoremap Y y$
nnoremap <c-a> ggVG

noremap <leader>r :action RenameElement<CR>

map<leader>\ <action>(SplitVertically)  ":vsp<CR>
map <leader>- <action>(SplitHorizontally) ":sp<CR>


" =========== insert mode ==========
imap jj <ESC>
imap <c-p> :action ParameterInfo<cr>

" =========== visual mode ===========
vnoremap H ^
vnoremap L $

解决idea和vim快捷键冲突

" =========== set handler ===========
sethandler <c-c> v:ide
sethandler <c-v> i-v:ide
sethandler <c-x> v:ide
sethandler <c-e> n:ide
sethandler <c-n> n:vim
sethandler <c-p> n:vim i:ide
sethandler <c-h> i:vim n-v:ide
sethandler <c-w> n:ide
sethandler <c-j> a:ide
sethandler <c-o> n:vim
sethandler <c-i> n:vim