A modern command-line overlay for IdeaVim users that makes :, /, and ? feel quicker and easier to use.
IdeaVim-CmdFloat provides an editor-themed command-line overlay for IdeaVim. When it detects triggers such as :, /, or ?, it shows a visual panel with instant focus, provides quick history navigation, and replays the command back to IdeaVim. The overlay is automatically disabled when IdeaVim is unavailable or the IDE runs in LightEdit mode to avoid conflicts.
| Search/Ex Command Float | Search Completion |
|---|---|
|
|
| CmdLine Actions | CmdLine Completion |
|
|
- Intercepts
:,/, and?to display a command or search overlay near the caret instead of at the status bar. - Stores the most recent 20 commands or searches; use
Up/Downto cycle through history andEscto cancel. - Matches the current editor theme by sampling foreground, background, and border colors automatically.
- Falls back to posting events through the IDE queue if IdeaVim APIs change, so command playback still works.
- Skips initialization in headless, LightEdit, or non-Normal mode editors to reduce accidental triggers.
Search for the plugin name Vim CmdFloat in the plugin marketplace, then install it.
- Make sure IdeaVim is installed and the editor is in Normal mode.
- Press
:for Ex commands or/and?for search; the overlay appears automatically. - Press
Enterto submit. The command is replayed in IdeaVim; pressEscto close without executing. - Use
Up/Downto traverse history. Typing new text resets the history cursor.
The overlay uses Up/Down, <C-p>/<C-n>, and <S-Tab>/<Tab> by default to navigate search/command completions. To override these shortcuts, define global variables in your .ideavimrc:
let g:cmdfloat_completion_prev_keys = ['Up', '<C-p>', '<S-Tab>']
let g:cmdfloat_completion_next_keys = ['Down', '<C-n>', '<Tab>']Both lists accept Vim-style tokens such as <C-n> or simple descriptors like ctrl+n. When the variables are omitted, Up/Down remain the active bindings.
To remap the search or command triggers themselves, bind IdeaVim actions to your preferred keys. The plugin exposes three actions:
nmap r <Action>(cmdfloat.search)
vmap r <Action>(cmdfloat.search)
nmap R <Action>(cmdfloat.search_backward)
vmap R <Action>(cmdfloat.search_backward)
nmap ; <Action>(cmdfloat.command)
vmap ; <Action>(cmdfloat.command)These mappings let r start a forward search, R start a backward search, and keep : for command mode. You can use the same actions inside vmap, imap, or multi-key sequences (for example <Leader>/) just as you would with other IdeaVim actions. IdeaVim 2.5.0 or newer is required for the <Action>(...) syntax.
If you no longer want CmdFloat to intercept the default :, /, or ? keys, disable the triggers directly from .ideavimrc:
let g:cmdfloat_disable_default_trigger = 1Any truthy value turns every built-in trigger off; omit the variable or set it to 0/false to keep the default bindings active.
CmdFloat suppresses the overlay when Vim is waiting for a search character. You can customize which keys are treated as single-character search commands and which ones start a multi-character search (for plugins like vim-flash, sneak, leap, etc.).
let g:cmdfloat_single_char_argument_keys = ['f', 't', 'F', 'T', 'r', 'm', '\'', '`', '@', 'q', 'z', 'Z', 'g']
let g:cmdfloat_extended_search_keys = ['s', 'S']If these lists are not set or are empty, the defaults above apply.
Completion rows reuse the editor highlight palette to emphasize matches. This runs by default; set a global flag in .ideavimrc to disable the extra highlighting when you need a cheaper rendering path:
let g:cmdfloat_highlight_completions = 0Any truthy value (1, on, true, yes) keeps the extra styling enabled; falsy values turn it off while preserving the match indicators for your search query.
Search completions stay enabled for every file by default. If large buffers feel sluggish, configure a line-count threshold in .ideavimrc to skip completions once the document exceeds that size:
let g:cmdfloat_search_completion_line_limit = 3000Use any positive value to impose a cap; keep it at 0 (or negative) to allow completions in all files.
- JetBrains IDE 2024.3.6 or newer.
- IdeaVim 2.10.0 or newer. The overlay disables itself if IdeaVim is missing.
- Only active in standard project windows; LightEdit mode is ignored.
- JetBrains Marketplace:
Settings/Preferences>Plugins>Marketplace> search forVim CmdFloat> Install. - Manual install: download the latest release, then go to
Settings/Preferences>Plugins>gear icon>Install Plugin from Disk...and select the ZIP. - Local build: run
./gradlew buildPluginand install the generated ZIP frombuild/distributions.
./gradlew runIde: launch a sandbox IDE for local debugging../gradlew test: execute the IntelliJ Platform integration tests.- On macOS, consider disabling the IDE "Press and Hold" behavior to mirror Vim key timing.
- The overlay does not appear. Confirm the editor is in IdeaVim Normal mode and IdeaVim is updated to a supported version.
- The command did not execute. The plugin falls back to the IDE event queue. If it still fails, search for
IdeaVim command overlayin the IDE logs for diagnostics.
Built on top of the IntelliJ Platform Plugin Template.



