在Vim(德语键盘)中重新映射Escape键



好吧,所以我一直在尝试Vim(标准控制台版本;我的操作系统是Linux Mint 13),我想摆脱使用Escape键更改模式的麻烦。最好,我想交换Capslock和Escape键,但据我所知,这在Vim本身是不可能的。我发现的大多数"解决方案"都涉及在全局级别上更改密钥(使用xmodmap或其他什么),但我真的不希望这样。如果有一种简单的方法可以仅在Vim中交换Capslock和Escape,请告诉我。

我听说过的另一件常见的事情是使用"Ctrl-["作为Escape的等价物。然而,因为我使用的是不同布局的德语键盘,所以这不是一个选项。所以,我想我会在Vim中使用noremap <C-ü> <Esc>(德语键盘上的"ü"键与美国键盘上的"["键在同一位置),但这也不起作用。我想这是因为"ü不是ASCII字符。有没有办法让这两种选择中的任何一种发挥作用?

更新:这很奇怪。经过更多的实验,似乎"Ctrl-ü"确实有效。我不确定发生了什么——也许我在尝试不同的东西时把一些与编码相关的设置搞砸了?如果没有好的解决方案来重新映射capslock,我想我会坚持使用"Ctrl-ü"。

所以,是的,最终我决定使用<C-ü>,因为它与其他任何东西都不冲突,而且它与美国键盘上的<C-[>相同。

然而,因为我已经厌倦了使用德语键盘布局进行编程(例如,要获得"{",你需要键入"Alt Gr-7"),我将键盘切换到US International,就Vim而言,它基本上具有类似的效果。如果你想养成触摸打字的习惯,这也会有所帮助;你实际上不能看键盘,因为键没有标记"正确";-)

很多人使用jk:

inoremap jk <Esc>

您也可以简单地执行<C-c>

这里有另一个可能对您有用的替代方案!它涉及到更改与VIM相关的键盘文件。我在这个youtube视频上找到了这个建议

$ cd /usr/share/X11/xkb/symbols/
sudo vim pc

要编辑要退出的capslock密钥,请将capslock行更改为如下所示:

key <CAPS> { [ Escape ] }; 

:wq#写入并关闭文件

注销并重新登录到机器,它应该更新!

最新更新