【问题标题】:IdeaVim, multi cursor usageIdeaVim,多光标使用
【发布时间】:2019-08-07 17:24:43
【问题描述】:

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

在 github 文档中,我们有命令:<A-n><A-x><A-p>g<A-n> 来触发/使用这个插件,但我根本无法让这个插件工作......

我已经在我的 .ideavimrc 中添加了set multiple-cursors

我错过了什么吗?

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

【问题讨论】:

  • g<A-n> 是否适合您?因为那对我不起作用。右:“按 g”,然后“按 ALT+N”。和我做 ALT+N 一样吗

标签: webstorm jetbrains-ide rubymine ideavim multiple-cursor


【解决方案1】:

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

但是,<A-n> 键不是 IdeaVim 的 multiple-cursors 所基于的扩展 (terryma/vim-multiple-cursors) 使用的键。我不确定它们来自哪里,但是 vim-multiple-cursors 使用 <C-n><C-p><C-x> 并且只使用 <A-n> 来选择所有出现,这与 IdeaVim 行为不同。跟踪错误的键映射时出现问题 - 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

您可以通过映射到其他内容(例如 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

【讨论】:

  • 这应该是选择的答案
【解决方案2】:

是的,tnx 提醒了我!

实际上,现在在 OSX Mojave 中,我们可以在键盘 Input Sources 中选择 Unicode Hex Input

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

【讨论】:

  • 感谢您的回答!我更喜欢它,因为它需要的步骤更少,并且可以在需要时轻松“恢复”默认状态。
  • 提醒:~/.ideavimrc 应该有set multiple-cursors
  • 要补充的另一件事,你必须将unicode hex input 作为唯一的输入源——在 macOS Mojave 上,我将美国作为输入源,而这些特殊字符仍然保留为我弹出,多个光标不起作用:)
  • @sidmishraw 我认为您必须在添加Unicode Hex Input 后在菜单栏中选择键盘类型。 Unicode Hex Input 会破坏其他一些键盘快捷键,对我来说最值得注意的是 option-arrow 组合。不在 Intellij 中时,我只是切换回 U.S.
  • 是否可以重新映射绑定?我想使用插件中的那些,例如 而不是 用于启动多光标并在匹配上添加虚拟光标+选择。
【解决方案3】:

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

然后写下这段文字:

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

将插入符号放在Hello 上,然后按几次&lt;A-n&gt;。所有Hello 都应该用一个单独的插入符号为每个单词选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    相关资源
    最近更新 更多