我看到了vim wiki提示,它说为了将Esc重新映射到CAPS LOCK,你必须编辑以下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 LOCK?
答案 0 :(得分:23)
我建议你使用AutoHotkey。
您可以执行每个应用程序的热键更改:
SetTitleMatchMode,2
#IfWinActive,VIM
CAPSLOCK::ESC
return
#IfWinActive
CAPSLOCK::CTRL
return
例如,此脚本将cap设置为在vim中转义,并控制其他地方。
答案 1 :(得分:1)
封锁密钥没有vim密钥标识符,因此您必须使用扫描代码。
这就像试图将ctrl键或shift键映射到某些东西 - 这些键本身不做任何事情,它们是关键修饰符,所以它们不能以相同的方式被捕获。
答案 2 :(得分:1)
映射必须在操作系统级别而不是vim完成,因此复杂性来自操作系统。例如,在我的Ubuntu机器上,我在~/.Xmodmap
中有以下内容:
! Esc on caps lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
但是,我认为REGEDIT脚本不是那么糟糕。这有点难看,但它只有两条线!
答案 3 :(得分:1)
您也可以使用Ctrl-C进行转义(至少在vim中可用)。这是我通常使用的。我通常交换控制和封锁,并通过ubuntu中的Windows和键盘conf中的注册表设置完成。
编辑:正如@mMontu所说,Ctrl-C比Esc更残酷:如this appropriate question中所述,
如果你刚写了一部分,vim就不会费心去检查 缩写,它不会运行花哨的自动命令你的 每次离开插入模式时都会设置插件
我没有注意到因为我的vimming还没那么先进。
答案 4 :(得分:1)
您也可以尝试:SharpKeys。 我用它交换了Caps Lock和Esc。
答案 5 :(得分:1)
另一个对我有用的替代方法是使用中的说明 this website
基本上:安装Microsoft的键盘布局创建器,然后编辑其源代码以允许重新映射CAPS LOCK并创建自己的自定义布局。
答案 6 :(得分:0)
CAPSLOCK
重映射到ESC
和CTRL
我已经介绍了in this answer的非常不错的工具,使您可以将CAPSLOCK
重新映射到这两者
ESC
(单独按下时)和CTRL
(用其他键按下时)只需使用 ililim 的this little piece of open source software。
您不需要管理员权限,ESC
和CTRL
仍可以按预期工作。
我用它来享受方便的CTRL + anything
按下操作而不会伤害我的小拇指,并切换了我在MobaXterm中通过ssh使用的Vim模式。要安装,请遵循this description。