When you’re deep into code, efficient cursor movement is a game-changer. IntelliJ IDEA offers several plugins—AceJump, MJump, and KJump—that bring Vim-style “jump anywhere” navigation. This post breaks down their key features, strengths, and trade-offs to help you pick the right tool for your workflow.
Overview of AceJump
AceJump tags every visible location with short labels, letting you jump in two keystrokes. Beyond character jumps, it offers:
- Target Mode: Jump and select whole words in one go.
- Line Mode: Jump to line starts, ends, or first non-whitespace char.
- Declaration Mode: Skip straight to a symbol’s declaration by repeating the shortcut.
- Full-text search: Scrolls off-screen if no match is visible.
Install via Settings → Plugins → Browse Repositories → AceJump.
Overview of MJump
MJump is a fork of KJump with added cross-editor support. Key highlights:
- Multi-editor jumps: Navigate across all open editor tabs.
- Vim-style modes: Char, word, and line jumps, mapped to MJumpAction, Word0, Line, etc.
-
IdeaVim integration: Use same
<leader><leader>
mappings as KJump for a seamless Vim feel.
No default shortcuts—assign your own under Settings → Keymap → MJump.
Overview of KJump
Ported from vim-EasyMotion, KJump focuses on minimal keystrokes:
- Quick char jumps: Single or two-character searches.
- Word jumps: Jump to any word or words starting with a given char.
- Line jumps: Snap to any line on screen.
-
IdeaVim integration: Use
:action KJumpAction
mappings in your~/.ideavimrc
for native Vim commands.
Install under the Plugins marketplace, then bind keys via Settings → Keymap → KJump.
Feature Comparison
Feature | AceJump | MJump | KJump |
---|---|---|---|
Character jump | Single-char | Single-char | Single-char (Char1 ), two-char (Char2 ) |
Word jump | Tag first char of words | Same as KJump modes | Word0, Word1 |
Line jump | Line Mode (start, non-ws, end) | Same as KJump Line mode | Line |
Declaration/Target modes | Declaration & Target modes | — | — |
Cross-editor jump | No | Yes | No |
IdeaVim integration | Supported | Supported | Supported |
Default shortcuts | Ctrl+; variants | None | None |
Latest compatibility | Actively maintained | Syncs with new IDEA versions | Basic scaffold maintained |
Data sources: AceJump, MJump, KJump
Pros and Cons
AceJump
- Pros:
- Versatile modes (declaration, target, line) for both navigation and selection.
- Scrolls to off-screen matches automatically.
- Cons:
- Tag clutter if many labels are needed.
- Multiple modes can overwhelm initial learning curve.
MJump
- Pros:
- Cross-editor jumps keep you from switching tabs manually.
- Maintained to work with the latest IntelliJ IDEA releases.
- Cons:
- Lacks AceJump’s declaration and target modes.
- Still requires manual keymap setup.
KJump
- Pros:
- Faithful Vim-EasyMotion experience with minimal keystrokes.
- Clean, straightforward feature set.
- Cons:
- No default shortcuts—initial setup required.
- Doesn’t support cross-editor navigation.
Tips for Getting Started
-
Installation:
- Open Settings → Plugins → Marketplace.
- Search and install your chosen plugin.
-
Keymap Setup:
- Go to Settings → Keymap.
- Locate AceJump/MJump/KJump and assign easy-to-remember shortcuts (e.g.,
Ctrl+;
for char jumps).
-
IdeaVim Users:
- Add mappings in
~/.ideavimrc
, for example:
nmap <leader><leader>s :action KJumpAction<CR> nmap <leader><leader>w :action MJumpAction.Word0<CR>
- Add mappings in
- Adjust for each plugin’s action names.
Conclusion
All three plugins excel at reducing cursor travel, but they serve slightly different needs:
- Choose AceJump for advanced modes and rich selection capabilities.
- Choose MJump if you jump across multiple editor tabs frequently.
- Choose KJump for a lean, EasyMotion-style Vim integration.
Give each a spin and see which one becomes your go-to for lightning-fast navigation. Happy coding!
Looking for even more? Check out IdeaVim-EasyMotion for IdeaVim-native jumps or AceJump-Lite if you want a lightweight variant.
Top comments (0)