This document explains how the current .ideavimrc works, what plugins are enabled, and the most important shortcuts/combos.
- Leader key:
Space - Main goals:
- Faster navigation between files, tabs, methods, and splits
- Quick access to IntelliJ/Android Studio actions from Vim mode
- Better editing workflow with EasyMotion, multi-cursor, and refactor shortcuts
easymotion/vim-easymotionpreservim/nerdtreemachakann/vim-highlightedyank
Also enabled through set options:
surroundmultiple-cursorsargtextobjcommentarywhich-key
- Relative + absolute line numbers:
set number relativenumber - Search behavior:
ignorecase+smartcase- incremental search (
incsearch) - highlight results (
hlsearch)
- Clipboard integration:
set clipboard+=unnamed - IDE-aware line join:
set ideajoin - No key timeout:
set notimeout
- Exit insert mode quickly:
jk→<Esc> - Clear search highlight:
<leader>/ - Reformat code:
\r - Firebender accept completion:
<Tab>
These remap word motions to better handle camelCase/snake_case navigation:
w→[we→]wb→[bge→[b
<leader>f→ EasyMotions<leader>e→ EasyMotionf
gd→ Go to declarationgy→ Go to type declarationgI→ Go to implementationgn→ Next methodgp→ Previous method
<leader>j→ Previous tab<leader>k→ Next tab
Ctrl + Left/Right/Down/Up→ move focus between splitsAlt + j/k/l/;(normal mode):Alt+j→ left splitAlt+k→ bottom splitAlt+l→ top splitAlt+;→ right split
- Same
Altmappings also work from insert mode (auto-exit insert first)
<leader>sv→ Vertical split<leader>sh→ Horizontal split<leader>sw→ Close current split/editor tab<leader>sa→ Close all other splits/editors
<leader>a→ Quick Fix / Intentions
<leader>se→ Search Everywhere<leader>sr→ Recent Files<leader>su→ Find Usages<leader>sp→ Recent Projects
<leader>ne→ Next Error<leader>no→ Next Occurrence<leader>ns→ Switcher<leader>nn→ Go to Line<leader>n,→ Back<leader>n.→ Forward
<leader>gg→ Commit/Checkin<leader>gc→ Branches<leader>gp→ Commit & Push<leader>gP→ Push<leader>gm→ Git menu<leader>gf→ Fetch<leader>ga→ Annotate / blame<leader>gl→ Version Control tool window<leader>gt→ Commit tool window
<leader>Gg→ Android sync project<leader>Gs→ Sync all external projects<leader>Gc→ Execute Gradle task<leader>Gb→ Compile dirty<leader>GB→ Make project<leader>Gr→ Refresh dependencies<leader>GC→ Compile project<leader>GR→ Rebuild project<leader>Gt→ Gradle tool window<leader>Gv→ Build variants<leader>Gl→ Show Gradle daemons
<leader>rn→ Run<leader>rc→ Choose run configuration<leader>rs→ Stop<leader>rr→ Rerun<leader>rd→ Debug class<leader>rh→ Test history/import tests<leader>rm→ Run menu<leader>rf→ Rerun failed tests
<leader>dt→ Toggle breakpoint<leader>ds→ Start listening<leader>do→ Step over<leader>di→ Step into<leader>dr→ Evaluate expression<leader>dC→ Run to cursor<leader>dc→ Resume
<leader>mj→ Add cursor below<leader>mk→ Add cursor above<leader>mn→ Select next occurrence<leader>mN→ Unselect previous occurrence<leader>ma→ Select all occurrences<leader>ml(visual) → Cursor per selected line<leader>ms→ Skip occurrence<leader>mr→ Remove all extra cursors
<leader>vj(visual) → Add cursor down<leader>vk(visual) → Add cursor up<leader>vn→ Select next match<leader>va→ Select all matches
<leader>lm→ Refactor menu<leader>lr→ Rename<leader>lc→ Change signature<leader>lv→ Introduce variable<leader>lR(visual) → Extract method/function<leader>lf→ Reformat code<leader>oi→ Optimize imports<leader>ls→ File structure popup
<leader>tr→ Run window<leader>td→ Debug window<leader>tg→ Version control window<leader>tt→ Terminal window<leader>tl→ Logcat window
Ctrl+n→ Open NERDTree- Inside NERDTree:
j→ Activate/open nodek→ Jump parent
Useful commands (manual):
:NERDTreeFocus:NERDTreeToggle:NERDTreeClose:NERDTreeFind:NERDTreeRefreshRoot
- If a mapping does not work, check if the target IDE action exists in your IDE version.
- To discover action IDs, use
:actionlistorCtrl+Shift+Aand inspect action names. - This setup is optimized for JetBrains IDEs + IdeaVim plugin.