Back to Ideavim

What's New in IdeaVim __VERSION__

src/main/resources/whatsnew-2.40.0.html

2.40.05.3 KB
Original Source

ideavim — whats-new — 80×24

~ $ ideavim

Welcome to a new way of hearing about IdeaVim.
Instead of digging through CHANGES.md, the highlights now come to you — right here in the IDE, every release. Here's what landed in __VERSION__.

new plugin · vim everywhere

VimEverywhere — Vim keys for the whole IDE

Modal, keyboard-first navigation has always stopped at the edge of the editor. VimEverywhere takes it everywhere else — tool windows, trees, and clickable UI all bend to the keyboard, no mouse required. It's brand new and we'd love more people to kick the tyres.

set VimEverywhere" add this to ~/.ideavimrc and restart

Three things come bundled the moment it's on:

Hints — jump anywhere

Press Ctrl+Shift+\ (Ctrl+Cmd+\ on macOS) and every clickable target gets a short A S D F label — type it to jump straight there. Buttons, tabs, tool-window controls, even inside dialogs like the IdeaVim settings.

NERDTree, everywhere

The NERDTree keys you already know — o, t, s, i, gs, gi — now work in any tree, not just the Project tool window.

Hop between tool windows

<C-W>h/j/k/l moves focus directionally across tool windows and the editor — fired from inside any tool window, just like window motions.

Spread the word

It's young and we want it in more hands. Turn it on, live in it for a day, and tell us what should come next — feedback shapes where it goes.

window management

Resize splits from the keyboard

Stop reaching for the mouse to balance your layout. A full set of Vim window-resize commands has landed, so your splits bend to your will.

\<C-W\>+\<C-W\>-" taller / shorter\<C-W\>\>\<C-W\>\<" wider / narrower\<C-W\>=" equalize every window:resize 20" or :resize +5 / -5:vertical resize 80" width, absolute or relative

Counts work too — 5<C-W>+ grows the window by five lines at once.

editing · live preview

See your :substitute before you run it

The new 'inccommand' option previews replacements as you type the command — and quietly reverts everything if you bail out with Esc.

set inccommand=nosplit" preview inline, in the bufferset inccommand=split" inline preview + a window listing" every affected line

No more squinting at a regex and hoping for the best.

text objects

targets.vim, built in

Welle's beloved targets.vim is now bundled. It supercharges text objects with seeking — operate on the next or last pair, quote, or argument without moving first.

Plug 'wellle/targets.vim'cin)" change inside the NEXT ( )da," delete an argument, comma and allci"" change inside the nearest quotes, even" if the cursor isn't on them yet

Pairs, quotes, separators, arguments and tags — with i/a/I/A modifiers and n/l next/last qualifiers.

search

Always know where you are

After /, ?, n, N, * or #, IdeaVim now shows the match index and total — [2/4] — just like Vim. Tune the ceiling with 'maxsearchcount' (it shows [2/>3] when exceeded).

input · keyboard layouts

Drive Vim from any keyboard layout

The new 'langmap' option lets you run Normal- and Visual-mode commands from a non-English keyboard — Greek, Dvorak, whatever you type on — by mapping the keys you press to the plain ASCII commands underneath. Text you type in Insert mode is left exactly as-is.

" map a Greek home row onto the ASCII commandsset langmap=ασδφγηξκλ;asdfghjklset langremap" also apply langmap to the result of a mapping

also worth a look

YouCompleteMe popup

Enable set youcompleteme and cycle the popup with Tab / S-Tab — normal tabbing stays untouched when no popup is open.

IDE completion keys

C-Y accepts the selected completion item and C-E closes the popup — the Vim muscle memory you already have.

Edit control characters

The new IdeaVim: Edit Control Characters action opens an editor for registers and macros containing control chars (^M, ^[).

Roomier messages

'cmdheight' and 'messagesopt' arrived: multi-line messages get their own space, and single-line messages auto-hide after a timeout.

polish & fixes

  • Modeless selection in the output panel and command line — select with the mouse, copy with C-Y.
  • Tab is free againsethandler <Tab> a:ide can hand it to the IDE.
  • Smarter * search now respects smartcase.
  • Steadier cursor — fixed column drift on j/k, centering with inlay hints, and double-scroll after incremental search.
  • No more double-typed text — leaving Insert mode with Esc no longer inserts what you typed twice (notably in Rider).
  • Caret stays put after IDE actions — generating code or finishing a refactoring template no longer leaves the cursor in an invalid Normal-mode spot.
  • C-O at end of line — the one-shot Normal-mode command now runs from the right position instead of past the line end, so db and friends behave.
  • Operators respect collapsed folds — dd on a fold header deletes the whole folded region, while dl mid-header deletes just one character.
  • Cleaner macro recording — a key that's the prefix of a timed-out mapping is no longer recorded twice.
  • Shell command changes show up — files touched by :! are now refreshed on disk as soon as the command finishes.
  • Plus the g< command, a scroll-back more-prompt pager, and a long list of smaller fixes.