IdeaVim,多光标使用

IdeaVim, multi cursor usage

我正在尝试触发(使用)IdeaVim 多光标插件:https://github.com/JetBrains/ideavim#emulated-vim-plugins -> 多光标

在 github 文档中我们有命令:<A-n><A-x><A-p>g<A-n> 到 trigger/use 这个插件,但是我根本无法让这个插件工作...

我已经添加到我的 .ideavimrc set multiple-cursors

我是不是漏掉了什么?

我正在使用 OSX(如果这很重要的话)。

OSX 具有映射到 option+key 的特殊字符。例如,您应该使用 this 禁用它们。

然后写下这段文字:

Hello world!
Hello world!
Hello world!
Hello world!

将插入符放在 Hello 上并按 <A-n> 几次。所有 Hello 都应该选择,每个单词都有一个单独的插入符号。

是的,谢谢你提醒我!

实际上,现在在 OSX Mojave 中,我们只需在键盘输入源中选择 Unicode Hex Input

就是这样...现在一切正常,在 (alt/option + ) 输入上禁用了特殊字符,我可以毫无问题地使用所有快捷方式:)

如其他答案中所述,macOS 将 <A-n> 视为“死键”以输入重音字符,例如 ñ (<A-n>n)。似乎无法以编程方式禁用此功能,您必须使用替代键盘输入源来解决此问题。

但是,<A-n>键不是IdeaVim的multiple-cursors所基于的扩展所使用的键(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.

与此同时,您可以通过将以下内容添加到 ~/.ideavimrc 来重新映射键以匹配 Vim 插件:

" 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

并且您可以通过映射到其他内容来解决“select 所有事件”的 <A-n> 问题,例如 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