Last active
January 23, 2025 04:36
-
-
Save soomtong/9168011df7fd31a128ceda13937c9841 to your computer and use it in GitHub Desktop.
Jetbrains ideavim plugin vimrc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" ref: https://www.jetbrains.com/help/idea/using-product-as-the-vim-editor.html#ide_actions | |
"noremap j gj | |
"noremap k gk | |
" inoremap jk <ESC> | |
" map space as leader key | |
let mapleader=" " | |
nnoremap <SPACE> <Nop> | |
" system | |
map \\r <Action>(IdeaVim.ReloadVimRc.reload) | |
map \\a <Action>(VimFindActionIdAction) | |
" like helix | |
nnoremap X V | |
" vnoremap x j | |
" vnoremap X k | |
vmap ; <Action>(EditorEscape) | |
nmap gh <Action>(EditorLineStart) | |
nmap gl <Action>(EditorLineEnd) | |
nmap gH <Action>(EditorLineStartWithSelection) | |
nmap gL <Action>(EditorLineEndWithSelection) | |
" Move line up / down | |
map <A-k> <Action>(MoveLineUp) | |
map <A-j> <Action>(MoveLineDown) | |
" Extend selection / shrink selection | |
map <A-o> <Action>(EditorSelectWord) | |
map <A-i> <Action>(EditorUnSelectWord) | |
" Duplicate line up / down | |
map <A-S-j> <Action>(EditorDuplicate) | |
map <A-S-k> <Action>(EditorDuplicate)<Action>(MoveLineUp) | |
" find and go to | |
nmap <leader><space> <Action>(SearchEverywhere) | |
nmap <leader>fe <Action>(RecentLocations) | |
nmap <leader>ff <Action>(GotoFile) | |
nmap <leader>fr <Action>(RecentFiles) | |
nmap <leader>fx <Action>(CloseEditor) | |
nmap <leader>fw <Action>(Switcher) | |
nmap <leader>fd <Action>(NewScratchBuffer) | |
nmap <leader>fs <Action>(SaveDocument) | |
nmap <leader>fa <Action>(SelectInProjectView) | |
nmap gj viw:action FindInPath<CR> | |
nmap gr <Action>(FindUsages) | |
nmap gJ <Action>(FindUsages) | |
nmap gk <Action>(ShowUsages) | |
nmap gK <Action>(ShowRecentFindUsagesGroup) | |
nmap gT <Action>(GotoTest) | |
nmap gi <Action>(GotoImplementation) | |
nmap gI <Action>(GotoImplementation) | |
nmap <leader>e <Action>(SearchEverywhere) | |
nmap <leader>o <Action>(RecentChangedFiles) | |
" easy motion | |
nmap s <Action>(AceAction) | |
" Show and edit structure | |
map <leader>a <Action>(ShowIntentionActions) | |
map <leader>k <Action>(QuickImplementations) | |
nmap <C-S-K> <Action>(ShowErrorDescription) | |
nmap <S-K> <Action>(QuickJavaDoc) | |
nmap <leader>= <Action>(ReformatCode) | |
nmap <leader>fl <Action>(ReformatWithPrettierAction) | |
" bookmark | |
nmap M <Action>(ToggleBookmark) | |
nmap L <Action>(GotoNextBookmark) | |
nmap H <Action>(GotoPreviousBookmark) | |
nmap <C-S-M> <Action>(ShowBookmarks) | |
nmap <leader>ms <Action>(ShowBookmarks) | |
nmap <leader>mm <Action>(ToggleBookmark) | |
nmap <leader>mn <Action>(GotoNextBookmark) | |
nmap <leader>mp <Action>(GotoPreviousBookmark) | |
nmap <leader>m1 <Action>(ToggleBookmark1) | |
nmap <leader>m2 <Action>(ToggleBookmark2) | |
nmap <leader>m3 <Action>(ToggleBookmark3) | |
nmap <leader>m4 <Action>(ToggleBookmark4) | |
nmap <leader>m5 <Action>(ToggleBookmark5) | |
nmap <leader>m6 <Action>(ToggleBookmark6) | |
nmap <leader>m7 <Action>(ToggleBookmark7) | |
nmap <leader>m8 <Action>(ToggleBookmark8) | |
nmap <leader>m9 <Action>(ToggleBookmark9) | |
nmap <leader>m0 <Action>(ToggleBookmark0) | |
" highlight | |
nmap <leader>s :nohls<CR> | |
" nmap <leader><cr> :nohlsearch<CR> | |
nmap <leader>uh <Action>(ToggleInlayHintsGloballyAction) | |
nmap <leader>uw <Action>(EditorToggleShowWhitespaces) | |
" tab open action | |
nmap <Tab> <Action>(NextTab) | |
nmap <S-Tab> <Action>(PreviousTab) | |
nmap <leader><Tab> <Action>(PrevSplitter) | |
nmap <C-.> <Action>(NextTab) | |
nmap <C-,> <Action>(PreviousTab) | |
nmap <leader>w <Action>(NextSplitter) | |
nmap <leader>W <Action>(OpenEditorInOppositeTabGroup) | |
nmap <leader>X <Action>(CloseAllEditorsButActive) | |
nmap <leader>gx <Action>(CloseAllEditorsButActive) | |
nmap <leader>gh <Action>(PrevSplitter) | |
nmap <leader>gl <Action>(NextSplitter) | |
nmap <leader>1 <Action>(GoToTab1) | |
nmap <leader>2 <Action>(GoToTab2) | |
nmap <leader>3 <Action>(GoToTab3) | |
nmap <leader>4 <Action>(GoToTab4) | |
nmap <leader>5 <Action>(GoToTab5) | |
nmap <leader>6 <Action>(GoToTab6) | |
nmap <leader>7 <Action>(GoToTab7) | |
nmap <leader>8 <Action>(GoToTab8) | |
nmap <leader>9 <Action>(GoToTab9) | |
nmap <leader>T <Action>(EditorTabPopupMenu) | |
nmap <c-w>m <Action>(MoveEditorToOppositeTabGroup) | |
nmap <c-w>n <Action>(OpenEditorInOppositeTabGroup) | |
" vcs | |
nmap <leader>gb <Action>(Annotate) | |
" built in search looks better | |
" nnoremap / :action Find<cr> | |
" but preserve ideavim search | |
" nnoremap g/ / | |
" enter newlines | |
"nnoremap <CR> I<CR> | |
"inoremap <CR> <C-o><Action>(EditorEnter) | |
" move with control arrow key | |
nmap <C-Up> <Action>(MethodUp) | |
nmap <C-Down> <Action>(MethodDown) | |
imap <C-Up> <C-O><Action>(MethodUp) | |
imap <C-Down> <C-O><Action>(MethodDown) | |
" open declaration in new split tab | |
"nmap <C-]> :action GotoDeclarationOnly<CR><BAR>:action VimWindowSplitVertical<CR><BAR>:action VimWindowPrev<CR> | |
"nmap <C-]> :action GotoDeclarationOnly<CR><BAR>:action VimWindowSplitVertical<CR> | |
"nmap <C-]> :action GotoDeclaration<CR> | |
" misc fallback when insert mode | |
imap <C-F> <Right> | |
imap <C-B> <Left> | |
imap <C-E> <End> | |
imap <C-A> <C-O>I | |
imap <C-D> <C-O>x | |
" enable options | |
" set which-key | |
set NERDTree | |
set surround | |
set hlsearch | |
set incsearch | |
set ignorecase smartcase | |
set visualbell | |
set keymodel=startsel,continueselect | |
set selectmode=mouse,key,ideaselection | |
" set virtualedit=onemore | |
set idearefactormode=keep | |
" set ideajoin |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
0.52 버전에 도입된 selectmode 와 keymodel 이 반영되었습니다.