在VIM中将<Ctrl-Ctrl>映射为ESC

9
在OS X上,我已经在键盘修改器设置中将Caps-Lock改为了CTRL。很不错,但我想使用CTRLCTRL(快速双击)来将光标移动到ESCVIM中(我的小指抵制CTRL[)。这可行吗?
已经使用au CursorHoldI * stopinsertset ut=2000在两秒后退出Insert Mode,但一些插件会干扰(通常是自动完成)。
另外:如果可能的话,这是否会与Tmux产生冲突?
3个回答

7

在Vim中,你不能只将Ctrl键映射为自身,更不用说CtrlCtrl了。它严格属于修饰键。


4

正如@echristopherson所提到的,Karabiner可以进行一些严格的重新映射操作...
借鉴他的建议,我找到了Karabiner文档并得出:

<?xml version="1.0"?>
    <root>
    <item>
        <name>Ctrl Freak</name>
        <identifier>private.double_ctrl_to_escape</identifier>
        <autogen>
            __DoublePressModifier__
            KeyCode::CONTROL_L, KeyCode::CONTROL_L,
            KeyCode::ESCAPE
        </autogen>
    </item>
</root>

我已经对它进行了一些快速测试,但是从第一印象来看,在OSX、SUBLIME TEXT和VIM(在TMUX会话中)上似乎没有问题。
请注意: 这是一个系统范围的解决方案。 对我来说,这是一件好事。我使用60%的键盘,需要充分利用我的空间。
对于一个特定于VIM的解决方案: 你需要添加那个部分。文档可以在这里找到。
干杯!

0

免费的程序Karabiner(以前叫做KeyRemap4MacBook)可以做很多类似的重新映射操作。我不确定具体是否支持双击按键,但我知道它可以将单次轻按Ctrl键视为Esc键,同时可以根据设定的时间长度来处理长按Ctrl键。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接