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 buffer
set 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 all
ci"    " 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 commands
set langmap=ασδφγηξκλ;asdfghjkl
set 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 foldsdd 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.