用等号映射Ctrl


10

我正在尝试将Ctrl和加号映射在一起。这是我在vimrc中尝试的方法:

nnoremap <C-=>    : echo "Hello" <CR> 

但是,似乎未触发映射。关于我可能在做错的任何建议吗?我正在使用macvim。



1
看来这种问题越来越普遍:VIM如何映射组合键:ctrl + shift + w +,
mMontu '16

@mMontu是的,这是一个很常见的问题。我想问一下关于vim的字符,术语代码以及vim可以/不能映射的内部表示的规范文章是否是一个好主意。
詹姆斯,

Answers:


17

不幸的是,没有可靠的映射方法Ctrl-=

由于ctrl+key和弦与终端交互并在内部表示的方式,保证Vim能够检测到的唯一Ctrl-映射是ASCII标准中定义的。这是这些ctrl+key组合的完整列表,每个字节代表一个字节。

Ctrl-@                 0x00            NUL
Ctrl-A to Ctrl-Z       0x01 to 0x1A
Ctrl-a to Ctrl-z       0x01 to 0x1A
Ctrl-[                 0x1B            ESC
Ctrl-\                 0x1C
Ctrl-]                 0x1D
Ctrl-^                 0x1E
Ctrl-_                 0x1F
Ctrl-?                 0x7F            DEL

但是,请注意,这些键中的大多数已经在Vim中具有功能,并且某些键在本质上与其他击键相同/不可区分。例如,CTRL-M具有与相同的键控代码Enter,因此,如果您映射任何一个,也不可避免地要映射另一个。

资料来源:Vim-FAQ

您可以通过将终端配置为发送映射的某个字节序列来解决上述限制,就像在此堆栈溢出线程中那样,但这肯定是很痛苦的。就个人而言,我宁愿选择其他映射。

最终可能会解决此问题,但不太可能,因为Vim依赖其运行所在的终端。但是,很有可能在Neovim中也可以使用。我不知道现在是否行得通。


1
很好,将来我会与人们联系起来。
Tumbler41 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.