如何将 IdeaVim 正常模式的键映射到编辑器的操作?

Posted

技术标签:

【中文标题】如何将 IdeaVim 正常模式的键映射到编辑器的操作?【英文标题】:How to map keys for IdeaVim's normal mode to editor's action? 【发布时间】:2016-04-10 13:28:41 【问题描述】:

我正在使用 JetBrains 的 phpstorm 和 IdeaVim 插件。

我想知道是否可以将普通模式下的键绑定到编辑器操作。

例如,我曾经将 Ctrl+B 映射到 Navigate > Declaration。然而 Ctrl+B 是一个 vi 动作,可以向后翻一页,没关系。

我知道我可以将键盘快捷键配置为其他快捷键,例如Ctrl+Shift+B ,但为了简单起见,我希望在ideavim的命令模式中有一个键映射到该功能,例如;.

所以按下 ;命令模式下会触发Declarationwitin phpstorm的动作。

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

要针对您要求映射的内容给出具体答案:将其放入您的~/.ideavimrc

nnoremap ; :action VimGotoDeclaration<CR>

为了找到动作名称,我输入了:actionlist declaration,它给出了动作名称的子集,其中包括动作名称中的“声明”一词。

正如其他人所指出的,您可能还更喜欢使用现有映射之一,而不是添加新映射。

【讨论】:

我担心这是不可能的,所以很高兴!【参考方案2】:

你想要的 go to declaration 是 vim 中的内置命令。您不必使用 IDEA 的操作。

gdgoto declaration)就是您要找的东西。

所以你只需按下(正常模式)gd,看看会发生什么。

在普通 vim 中,执行:h gd 以查看详细信息。

【讨论】:

虽然这适用于问题中描述的操作,但您知道如何将键重新映射到其他编辑器操作吗?【参考方案3】:

您可以使用&lt;C-]&gt; (Ctrl+]) 来跟踪引用(跳转到声明是引用的一个示例),&lt;C-O&gt; 可以返回。您还可以使用类似于原始 Vim 的 map 命令映射这些 Vim 样式的快捷方式。

【讨论】:

以上是关于如何将 IdeaVim 正常模式的键映射到编辑器的操作?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PhpStorm 中使用 IdeaVim 映射 <Action>?

如何在idea中关闭vim模式

Intelli IDEA快捷键(配合IdeaVim)(转)

更新ideavim:重新映射 <b> 的 <ctrl+j> 和 <w> 的 <ctrl+l> 不起作用

IdeaVim-常用操作

IdeaVim-常用操作