IdeaVim, multi cursor usage
OSX has special characters that are mapped to option+key. You should disable them using this for example.
After that write this text:
Hello world!
Hello world!
Hello world!
Hello world!
put caret on Hello
and press <A-n>
several times. All Hello
should be selected with a separate caret for each word.
As mentioned in other answers, macOS treats <A-n>
as a "dead key" in order to enter accented characters, such as ñ
(<A-n>n
). It doesn't seem possible to disable this programmatically, and you have to use an alternative keyboard input source to work around this.
However, the <A-n>
keys are not the keys used by the extension that IdeaVim's multiple-cursors
is based on (terryma/vim-multiple-cursors). I'm not sure where they came from, but vim-multiple-cursors uses <C-n>
, <C-p>
and <C-x>
and only uses <A-n>
to select all occurrences, which is different to the IdeaVim behaviour. There is an issue tracking the wrong key mappings - VIM-2178.
In the meantime, you can remap the keys to match the Vim plugin by adding the following to your ~/.ideavimrc
:
" Remap multiple-cursors shortcuts to match terryma/vim-multiple-cursors
nmap <C-n> <Plug>NextWholeOccurrence
xmap <C-n> <Plug>NextWholeOccurrence
nmap g<C-n> <Plug>NextOccurrence
xmap g<C-n> <Plug>NextOccurrence
nmap <C-x> <Plug>SkipOccurrence
xmap <C-x> <Plug>SkipOccurrence
nmap <C-p> <Plug>RemoveOccurrence
xmap <C-p> <Plug>RemoveOccurrence
And you can work around the <A-n>
issue for "select all occurrences" by mapping to something else, such as Shift+Ctrl+n:
" Note that the default <A-n> and g<A-n> shortcuts don't work on Mac due to dead keys.
" <A-n> is used to enter accented text e.g. ñ
nmap <S-C-n> <Plug>AllWholeOccurrences
xmap <S-C-n> <Plug>AllWholeOccurrences
nmap g<S-C-n> <Plug>AllOccurrences
xmap g<S-C-n> <Plug>AllOccurrences
Yeah, tnx for reminding me for that!
Actually, now in OSX Mojave, we can just choose Unicode Hex Input
in keyboard Input Sources
And that's about it... Now everything is ok and special characters are disabled on (alt/option + ) input, and I can use all the shortcuts without any problem :)