如何获取 vimrc 中要为键盘映射编码的键名?

如何获取 vimrc 中要为键盘映射编码的键名?

在 Emacs 中,我可以按Ctrl-h, k, 来描述一个键。即使键名未定义,我也可以获取该键名,例如,

C-x <C-M-end> is undefined

因此,我知道了密钥名称是C-x <C-M-end>

但是如何获取 Vim 的键名呢?

我想为Ctrl-Shift-V和设置一个键盘映射Shift-Insert,但我应该使用什么代码?

是否有可能即时获取密钥名称?

答案1

我能找到最接近describe-keyCtrl+ HK)的是:map命令。它将列出所有映射。

您也可以运行:map <key name>,但必须<key>使用中列出的特殊语法进行指定
主调符号

或者您可以尝试:mapCtrl+ V<key>,它应该允许您直接按下键,而不需要使用特殊语法。

因此,要绑定Ctrl++ ShiftV请尝试以下操作:

:map <C-S-v> whatever

或者

:mapCtrl+ V Ctrl+ Shift+V whatever

但请确保你的终端程序还没有将其用于粘贴等特殊操作,否则 Vim 将永远看不到按键。

另请参阅地图 Alt 键,这有助于解释您的Alt密钥是否应该写为<M-x><A-x>

答案2

为了找出 Vim 中某个键或组合键的输出,我通常会用“ :enew”打开一个空白缓冲区,进入插入模式,按control-v,然后按我想要识别的键或组合键。此 control-v 技巧也可以在 :-命令行上使用,因此定义用于测试的映射相当容易。例如,“ :mapcontrol-v和组合键“ :echo 'it works'”。

答案3

只需即时输入Ctrl+V并输入您想要按的键。如果您没有找到预期的结果(例如<c-space><c-cr><M-i>、...),则意味着您正在使用 vim 而不是 gvim。vim 理解键入的键的方式与您的终端配置有关。gvim 使用其自己的定义,因此无需配置。

相关内容