为什么如此复杂以将ESC重新映射到VIM中的CAP锁定?
题
我看到了VIM Wiki技巧,它说要将ESC拆下为CAPS锁定,您必须编辑以下Windows代码:
REGEDIT4
[HKEY_CURRENT_USER\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00
是否可以通过仅在_vimrc中添加或修改行来将ESC锁定到CAPS锁定?
解决方案
我建议您为此使用Autohotkey。
您可以进行每次申请热键更改:
SetTitleMatchMode,2
#IfWinActive,VIM
CAPSLOCK::ESC
return
#IfWinActive
CAPSLOCK::CTRL
return
例如,该脚本设置了帽子以在VIM中逃脱,并控制其他任何地方。
其他提示
Capslock键没有VIM密钥标识符,因此您必须使用扫描代码进行操作。
这就像试图将CTRL键或移动键映射到某些东西一样 - 这些钥匙不会自己做任何事情,它们是钥匙修饰符,因此它们不能以相同的方式被困。
映射必须在操作系统级别而不是VIM上完成,因此并发症来自OS。例如,在我的Ubuntu机器上,我有以下内容 ~/.Xmodmap
:
! Esc on caps lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
但是,我认为Regedit脚本并不那么糟糕。这有点丑陋,但是只有两行!
您也可以尝试一下: Sharpkeys。我伸出了cap锁,然后逃脱了。
您也可以使用CTRL-C逃脱(至少在VIM中可用)。这是我通常使用的。不过,我通常会交换控制和capslock,并且已经通过Ubuntu中的Windows和键盘上的注册表设置来完成。
编辑:正如@mmontu所指出的那样,Ctrl-C比ESC更残酷:如 这个适当的问题,
vim不会打扰检查您是否只是写了缩写的一部分,并且不会运行您的插件设置的花式自动命令,每次离开插入模式
我没有注意到,因为我的vimming还不那么先进。
对我来说效果很好的另一个替代方法是使用发现的说明这个网站
本质上:安装Microsoft的键盘布局创建器,然后编辑其源代码,以允许盖帽锁定并创建自己的自定义布局。
不隶属于 StackOverflow