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

问题描述

vim 的 PHPStorm 插件https://github.com/JetBrains/ideavim,可通过 .ideavimrc 进行配置(根据文档)。文档中有一个示例:

""" Mappings --------------------------------
map <leader>f <Plug>(easymotion-s)
map <leader>e <Plug>(easymotion-f)

map <leader>d <Action>(Debug)
map <leader>r <Action>(RenameElement)
...

<Action> 映射,在括号中是 IDE 应该执行的操作。现在,supported actions 中有所有受支持操作的列表。

我想映射到 <leader>] 一个移动到下一个标签的操作。在上面支持的操作链接中,我找到了操作:

 * |gt|                   {@link com.maddyhome.idea.vim.action.motion.tabs.MotionNextTabAction} 

(或者我认为,这是正确的操作,“移动到下一个标签”)。所以我希望映射是:

map <leader>] <Action>(MotionNextTabAction)

当然,那是行不通的。操作名称可能是错误的,但除了链接中的“支持操作列表”之外,我没有其他参考。那么应该怎么看映射呢?如何在列表和“真实”动作名称之间进行转换?

解决方法

操作的名称是 NextTab。 这个列表实际上不是操作列表,而是开发人员实现类的链接列表。 (是的,我们实际上应该对其进行更新以使其更加用户友好)。

关于动作名称:通常我建议使用 "track action IDs" 选项来获取动作的名称,但由于某种原因它不适用于这种情况(由于某些原因,动作的 id 未显示)原因)。但是通过 actionlist 搜索仍然有效,您可以使用它。

无论如何,您为什么不创建一个到 gt 的映射?喜欢map <leader>] gt

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...