CHANGES.md
History of changes in IdeaVim for the IntelliJ platform.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Before version 1.7.0:
Stable versions use X.Y format.
EAP (Early Access Program) versions use X.Y.Z format.
Would you like to try new features and fixes? Join the Early Access Program and
receive EAP builds as updates! Use the Early Access Program option in the status bar or
add this URL to "Settings | Plugins | Manage Plugin Repositories":
https://plugins.jetbrains.com/plugins/eap/ideavim
It is important to distinguish EAP from traditional pre-release software. Please note that the quality of EAP versions may at times be way below even usual beta standards.
:autocmd command - run Ex commands on editor events such as BufRead, BufWrite, BufEnter, BufLeave, InsertEnter, InsertLeave, WinEnter, WinLeave, FocusGained, FocusLost, and FileType; supports augroup and file pattern matching (e.g., autocmd BufWritePre *.py echo "saving python")<Tab>/<S-Tab> to cycle through file matches in :edit, :split, :vsplit, :write, :read, :source, and :find commands; use arrow keys to navigate the completion paneladd(), call(), extend(), extendnew(), filter(), flatten(), flattennew(), foreach(), has_key(), indexof(), insert(), items(), keys(), map(), mapnew(), reduce(), remove(), slice(), sort(), uniq(), values():read command - insert file content below current line (e.g., :read file.txt, 0read file.txt):read! command - insert shell command output below current line (e.g., :read! echo "hello")zA command - toggle folds recursivelyzr command - increase fold level to show more foldszm command - decrease fold level to hide more foldszf command - create fold from selection or motion:set foldlevel option - control fold visibility levelgw command - reformat code like gq but preserving the cursor positionf, w, text objects) not working in Java files decompiled from Kotlin class files<C-V>...x, <C-V>...c, <C-V>...I) leaving stray carets in normal mode* search wrapping to behave unreliablygcc/gc{motion} changes are now properly grouped as a single undo step= (format/auto-indent) action in split modea" a' `a`` text objects to include surrounding whitespace per Vim spec<A-n> (NextOccurrence) with text containing backslashes - e.g., selecting \IntegerField now works correctly:edit command when project has no source roots. in remote development (split mode)<C-w>h) during macro playbackpumvisible() function returning incorrect result (was inverted)<Esc> not properly exiting insert mode in Rider/CLion when canceling a completion lookup<Esc> not exiting insert mode after <C-Space> completion in Rider<Esc> in search bar no longer inserts ^[ literal text when search is not found - panel is now properly closedmap b wbb) causing an apparent infinite loop - maxmapdepth limit now properly terminates the entire mapping chaings/gi preview split commands to keep focus on the tree< and >) position tracking after text deletion - gv now re-selects correctlyIndexOutOfBoundsException when using text objects like a) at end of file\/, \?, and \& in Ex command ranges now correctly report E35/E33 errors when no previous search or substitute pattern exists, instead of crashing:'<,'>sort) failing when run off the Event Dispatch Threadj/k/G/gg/p/<C-J>/<C-K>) poor performance in split mode - navigation now uses Swing actions directly instead of going through backend RPCgr/grr mappings overriding user-defined key mappingsIndexOutOfBoundsException when using :command with -nargs option but without a command name<Esc> to cancel register selection in normal mode (after pressing ")<S-Tab> being intercepted by IdeaVim - users can now remap <S-Tab> to other IntelliJ actionsgcc/gc{motion} commentary leaving editor in incorrect mode in Rider/CLion split modeCommandKeyConsumer when pressing Esc after disabling and re-enabling IdeaVim with an open command line<Esc> not exiting insert mode in Rider/CLion when a <C-Space> completion popup intercepts the key before IdeaVimgcc/gc{motion} commentary not adding space after // prefix in C/C++/C# files in Rider/CLion split modegw to reformat code with preserving the cursor position:set VimEverywhere, then press Ctrl+\ to show hints
on UI
components<F13> through <F24> keys:source, :edit, :write and other file commands (e.g., :source $HOME/.ideavimrc)<C-R> commands: insert register (<C-R>{register}), word (<C-R><C-W>), WORD (<C-R><C-A>), line (<C-R><C-L>), filename (<C-R><C-F>)count(), index(), min(), max(), range(), repeat(), char2nr(), nr2char(), trim(), reverse(), getline(), deepcopy(), copy(), string()let command value unpacking (e.g., let [a, b] = [1, 2])echo $HOME)f/t motions:set noNERDTree commandvmap to correctly apply to both visual and select modesChangelog was not maintained for versions 2.10.0 through 2.27.0
~/ on WindowsThis version of IdeaVim contains a lot of issues. Version 2.6.3 reverts these changes.
ShowHoverInfo action can be used in mappings to open a tooltip that is shown by
mouse hovering | VIM-2106has Vim Script function supports the most common OS checks: win32, win64, linux, mac, macunix, osx, osxdarwin, bsd, sun, unix
has() function:set command outputgv in multiple-caret mode now.gcu command for Commentary plugin:Commentary command, which works great for commands such as :%g/fun/Commentarygc – commentary text objects. E.g. dgc: delete commented text.redo-register feature | VIM-2643 | viminfo<Plug>Commentary instead of <Plug>(CommentMotion). Old mappings are maintained for compatibility.~/.ideavimrc in IDE, remove a mapping, and reload the config using the reload button,
the mapping will actually be unmapped.ci(& friends searches for the brackets in the line.gccgc text objectreturn without expression@@ commandtabm commandset opti command for the folder in the project treegv! commandI for one-line block selection! commandmatchit.vim extension for Ruby and XML/HTML VIM-539 | matchit.vimmap <expr> execution are now displayed in status barmap<expr> are now shown in status bar:h map-expression.1.7.0 instead of 0.70.T movement:global and :vglobal commands VIM-831, VIM-832vim-indent-object extension VIM-1151 | vim-indent-object:print commandsethandler command to configure shortcuts conflicts via ~/.ideavimrc file. See docs.vim-paragraph-motion extension VIM-2290 | vim-paragraph-motion:ls returns correct path for files on Microsoft Windows.:w command<End> command behaviour. register<S-Space> in insert mode with an existing mappingNot a lot of changes for this release. Focused on internal improvements.
startofline optionM command for small filesSupport NERDTree extension VIM-1042 | NERDTree
Support maxmapdepth option to define the maximum depth of mappings
octal is now disabled by default for nrformats. VIM-2181cit for empty tagss command<Action> keyword. E.g. map <C-K> <Action>(CommentByLineComment).
Check out README.md for the details.IdeaVim: track action Ids command to find action ids for the :action command.
Enable this option in "Search everywhere" (double shift).vim-plug or vundle syntax.set commentary
Plug 'tpope/vim-commentary'
Plug 'https://github.com/tpope/vim-commentary'
Plugin 'tpope/vim-commentary'
...
.vimrc with plugins registered via vim-plug or vundle.<Esc> for dialogs. Now <Esc> will exit insert / visual mode and close the dialog from normal mode.set ideavimsupport= to disable IdeaVim in dialog editors.scrolloff changesShift-D should not delete an empty linescrolloff is over half screen height, but less than full heightvirtualedit=onemore (VIM-844)sidescrolloff for horizontal offsetzt for virtual space enabled:w works as :wa by default. This can be disabled with ideawrite option.
Now features like Prettier on save or Run on save for files would work with :w command as well.
See VIM-1968.
vim-highlightedyank plugin emulation (VIM-1970 | vim-highlightedyank).
VIM-2068 :tabclose command
exchange plugin emulation (VIM-921 | vim-exchange).
~/.ideavimrc file can be reloaded using the new floating action.
Add :buffer command.
y}P command."\<SPACE>" including let mapleader="\<SPACE>"y}P command.ReplaceWithRegister plugin emulation (ReplaceWithRegister).argtextobj.vim plugin emulation (argtextobj.vim).vim-textobj-entire plugin emulation (vim-textobj-entire).'showcmd' support, on by default.ls/buffers/files commands.ideastatusbar option with ideastatusicon. Now you can make the icon gray.ideastatusbar option is deprecated now. See ideastatusicon.3d2w deletes 6 words, instead of 32.<C-K> and <C-V>/<C-Q>.:registers command.:registers, :marks and :jumps is encoded correctly.<S-Space> mapping.X command for linewise selection.IDE handler.ci{ behavior.g commands (guu, gUU, g~~).isk in ~/.ideaivmrcset clipboard=unnamed execution from ~/.ideavimrcc command after extract method actionCTRL-J:delmarks command (VIM-1720)refactoring value of selectmode option to ideaselectiontemplate value of selectmode option and replace it with idearefactormode option.incsearch:y commandESC for insert modeESC for insert mode>Y command for visual modeIntroduce Select Mode.
Fixed :only command
VIM-1586 Support :shell command
VIM-801 Support :tabnext and :tabprevious commands
VIM-1570 Support g<C-A> and g<C-X> commands for visual mode
VIM-1119 Fixed 'e' search offset
VIM-1587 Fixed end-of-line multi line percent match in visual mode
VIM-1303 Fixed "Changing color schemes doesn't change find input"
VIM-944 Fixed navigation with keypad arrows
VIM-1569 Fixed surround plugin bug by S<tag attr="attr">
VIM-1012 Fixed wrong tab selection after:q
VIM-1245 Clear switcher list after:q
VIM-1425 Correct % command
VIM-1521 Support commentary extension
VIM-907 Fix va( command
VIM-1067 Fix repeating of A command
VIM-1615 Fix set so=999 command and line "bouncing" with inlays
VIM-1630 Support :tabonly command
VIM-607 Fix memory leaks
VIM-1546 Storing TAB key as input
VIM-1231 Get indent from PsiFile
VIM-1633 Fixed sequential text object commands in visual mode
VIM-1105 Added the :command command
VIM-1090 Fixed tag motion with duplicate tags
VIM-1644 Fixed repeat with visual mode
Fixed invoking IDE actions instead of command line actions with same shortcuts
VIM-1550 Fixed leaving command line mode on backspace
Fix insert position of <C-R> in ex commands
Command line editing caret shape and insert digraph/register feedback
VIM-1419, VIM-1493 Correctly set focus when handling cmode mapping
Fix incorrect handling of subsequent key strokes after ex command line loses focus
VIM-1240 Improve UI of ex command line and output panel
VIM-1485 Remove incorrect gap between ex command line label and text
VIM-1496 Fix focus for Recent Files action
VIM-1275 "Change In Brackets" for string
VIM-941 Fix tab for visual block mode
VIM-1002 Fix dot command for tab
VIM-1426 Correct % command
VIM-1655 Deleted word should is not yanked with Ctrl-W in insert mode
VIM-1628 Fix dead keys for JBR11
VIM-1061 Fix ^K for digraphs
VIM-437 Support keymode option
VIM-274 Enter select mode for refactoring
VIM-510 Support Extend Selection for visual mode
VIM-606 Fix select text with mouse in insert mode
VIM-800 Fix surround with live template
VIM-1013 Fix reformat code on selection
VIM-1214 Fix insert text to empty row
VIM-1452 Fix reselect visual block
VIM-1497 Fix rename variable action
VIM-1541 Fix visual block mode problems
VIM-1619 Extract method for visual mode
VIM-1616 I with multicaret works correctly
VIM-1631 Fix visual block for tab character
VIM-1649 Type variable for surround live template
VIM-1654 Fix NPE while indent in visual block mode
VIM-1657 Fix vim repeat in visual block
VIM-1659 Fix selection on empty line
VIM-1473 Yanked lines are not handled as block selection when clipboard is used
VIM-714 Fixed problems with caret position by vertical movement
VIM-635 Supported gn commands
VIM-1535 Use same text attributes and highlight layer as IntelliJ's own Find command
VIM-1413 Fix smartcase option being ignored in incremental search
Fix incremental search not matching with trailing options, e.g. /Foo/+1
Move the current line as well as scrolling during incremental search
VIM-128 Fix :substitute not respecting ignorecase and smartcase options
Fix next/previous search commands not respecting smartcase override
Search highlights are updated when ignorecase, smartcase and hlsearch options are updated, and when plugin is disabled
Incremental search highlights all matches in file, not just first
Added incremental search highlights for :substitute command
Fix exception when trying to highlight last CR in file
Improve behavior of <BS> in command line entry
VIM-1626 Add ideajoin option
VIM-959 Add ideamarks option
VIM-608 Automatic upload files on explicit save
VIM-1548 Respect editor settings about tabs and spaces
VIM-1682 Fix backward search with OR
VIM-752 Enter finishes template in normal mode
VIM-1668 Fix smart step into
VIM-1697 Fix wrong search with tab characters
VIM-1700 Fix wrong search with tab characters
VIM-1698 Paste doesn't clear clipboard
VIM-1359 Fix behavior of i_CTRL-W action
set relativelinenumber on large files<C-O> and <Esc> in Insert and Replace modesMoved "Vim Emulation" settings into "File | Settings | Vim Emulation". Support
for vim-multiple-cursors commands <A-n>, <A-x>, <A-p>, g<A-n> (put set multiple-cursors into your ~/.ideavimrc to enable it). Support for running
Vim commands for multiple cursors. Various bug fixes.
<A-n>, <A-x>, <A-p>, g<A-n><Esc> in diff windows:action to work in visual modeI in visual block mode:actionI for short lines in visual block modecw with count at the end of a word:e# when editor tabs are hiddenit and at motionsi( actions inside string literalsinput() into a write actionsmartcase is onEnabled zero-latency typing for Vim emulation. Added support for iskeyword option. Various bug fixes.
iskeyword optionA bugfix release.
Bug fixes:
. resetting the last find movement while repeating change that also uses movementFeatures:
A bugfix release.
Bug fixes:
Added incsearch option for incremental search. Added support for it and
at tag block selection. Added vim-surround commands ys, cs, ds,
S. Various bug fixes.
Features:
vim-surround commands ys, cs, ds, Sincsearch option for showing search results while typing={motion} formatting commandBug fixes:
:action command0-9 and - in delete commands[m in some file typesg_ move to go to the current line=={count}== formatting:s///gcA bugfix release.
A bugfix release.
This release is compatible with IntelliJ 15+ and other IDEs based on the IntelliJ platform branch 143+.
A bugfix release.
Added support for mapleader. Support comments in % brace matching. Various
bug fixes.
Features:
mapleader% brace matchingBug fixes:
J shouldn't add whitespace if there is a trailing spacegt and gT0 should still allow it to be entered in command countc and x functionality for visual block selectionsA bugfix release.
Bug fixes:
set numbers/$/\r/gAdded support for number and relativenumber options, clipboard=unnamed
option. Added :action and :actionlist commands for executing arbitrary
IDE actions. Various bug fixes.
Features:
clipboard=unnamed optionrelativenumber optionnumber option:action and :actionlist commands for executing arbitrary
IDE actionsBug fixes:
<BS> for . command* and +
registersd$:! to allow running non-filter commandscc on the second-to-last linecW command detecting end-of-word incorrectlyA bugfix release.
Bug fixes:
>> to work if a line contains only one characterAdded support for common window splitting and navigation commands. Various bug fixes.
Features:
<C-W> commands: split, close, next/previous windows,
left/right/up/down windows:split and :vsplit commandsBug fixes:
:quit instead of all tabs with the current
file<C-W> when the caret is at the end of a lineThe ~/.vimrc initialization file is no longer read by default, use
~/.ideavimrc instead.
Features:
~/.ideavimrcBug fixes:
.ideavimrc as pressed, not typed
keystrokes<C-$CHAR><C-PageUp>/<C-PagDown> to be used outside of Vim emulation'< and '> marks for saving and restoring the last visual
selectionA bugfix release.
Bug fixes:
<Tab> in Insert mode in Vim emulation<Plug> and <SID><Bar> in Vim key notation| in :map commandsAdded support for :map key mapping commands. New keyboard shortcuts handler
that doesn't require a separate keymap for Vim emulation. Added support for
:source and :sort commands.
Features:
:map key mapping commands:source command:sort commandBug fixes:
Fixed API compatibility with IntelliJ platform builds 132.1052+.
A bugfix release.
Bug fixes:
Added support for a separate .ideavimrc config file. Fixed long-standing
issues with merged undo/redo commands and <Esc> during code completion.
Various bug fixes.
Features:
Bug fixes:
<Esc> in completion windows:e open file dialog:put creates a new line:put is optionalA bugfix release.
Bug fixes:
<Enter> handling for one-line editorsA bugfix release.
Bug fixes:
New Vim keymap generator creates better keymaps, especially for Mac OS X. Restart after reconfiguring the keymap is no longer required.
Features:
Bug fixes:
. commandcw on the last character in lineO command at the first lineAdded support for paste in the command mode: from a register using <C-R>,
from the clipboard using <S-Insert> or <M-V>. Added support for the last
change position mark (the dot . mark). New shortcuts for Go to declaration
<C-]> and Navigate back <C-T>. Various bug fixes.
Features:
<C-]> and <C-T> to the keymapBug fixes:
gt and gTA bugfix release.
Added Vim string object selection motions (see help topics v_i", v_a").
Various bug fixes.
Features:
Bug fixes:
dl for the last character in linedaw for first and last words with no space at the right/left
in the current linecc at the last linecw at the last char of a word before next word without
whitespacecw at the last character of a wordw motion for the last word in linew motion for extended latin lettersw motion to stop at empty linedw on the last single-word
line, w command argument for the last word in filew motion at the last wordi{ motioni{ motion characterwise, not linewise/characterwise in visual
mode~A bugfix release.
A bugfix release.
A bugfix release. Vim.xml was fixed to use Command+C, Command+V on Mac OS. Unfortunately you need to update Vim.xml manually this time.
...
... from 0.8.4 Bug Fixes
0.8.3 from 0.8.2 Bug Fixes
0.8.2 from 0.8.1
0.8.1 from 0.8.0 Bug Fixes
0.8.0 from 0.7.3 New Features
Bug Fixes
0.7.3 from 0.7.2
New Features
Bug Fixes
0.7.2 from 0.7.1
Bug Fixes
0.7.1 from 0.7.0
Bug Fixes
0.7.0 from 0.6.5
New Features
Bug Fixes
0.6.5 from 0.6.4
Support for Aurora build #1050 and higher.
0.6.4 from 0.6.3
Support for Aurora build #1035 and higher.
New Features
{, and } commands (previous and next
paragraph).Bug Fixes
Clean-up
0.6.3 from 0.6.2
Support for Aurora build #992 and higher.
0.6.2 from 0.6.1
Repackaged to install as a zip directory instead of a jar file. This provides better support for the new plugins repository.
0.6.1 from 0.6.0
Support for Aurora build #963.
Changed Features
Bug Unfixes
0.6.0 from 0.4.1
Support for Aurora build #939. It may work with slightly older versions too. This version will not work with IDEA 3.x. For IDEA 3.x you must use IdeaVim versions prior to 0.6.0.
Bug Fixes
0.4.1 from 0.4.0
Bug Fixes
Temporary Work-arounds
0.4.0 from 0.3.2
New Features
New Commands
New :set Options
Bug Fixes
0.3.2 from 0.3.1
New Commands
New Features
Bug Fixes
0.3.1 from 0.3.0
New Commands
Changed Commands
Bug Fixes
0.3.0 from 0.2.0
Redone Commands
New Commands
Supported Set Options
0.2.0 from 0.1.1
New Commands
Bug Fixes
Keymappings - Install new plugin.xml or manually add keymapping
0.1.1 from 0.1.0