2

我真的很希望能够将大写锁定键映射到Ctrl,但只能在 vim 中。我看到了这个,但我使用的是 OS X。是否有 OS X 替代 AutoHotKey,或者是否有另一种方法可以为修饰键创建特定于应用程序的映射?

4

1 回答 1

4

这会将大写锁定更改为在终端中进行控制。我不相信有一种好方法可以判断终端何时运行 vim。

  1. 下载并安装SeilKarabiner
  2. 打开 Seil 并将大写锁定更改为密钥代码 110(PC 应用程序密钥) 大写锁定键码 110
  3. 打开 Karabiner 并编辑 private.xml(杂项和卸载(选项卡)-> 打开私有 Xml(按钮))。添加在根元素之间添加以下内容。

    <name>Change PC Application Key to CONTROL (Menu Key in TERMINAL)</name>
    <item>
        <only>TERMINAL</only>
        <name>Change PC Application Key to CONTROL (Menu Key in TERMINAL)</name>
        <identifier>remap.termianl_application2control</identifier>
        <autogen>__KeyToKey__ KeyCode::PC_APPLICATION, KeyCode::CONTROL_L</autogen>
    </item>
    
    <name>Change PC Application Key to CAPSLOCK</name>
    <item>
        <name>Change PC Application Key to CAPSLOCK</name>
        <identifier>remap.other_application2capslock</identifier>
        <autogen>__KeyToKey__ KeyCode::PC_APPLICATION, KeyCode::CAPSLOCK</autogen>
    </item>
    
  4. 单击更改密钥选项卡上的重新加载 XML

  5. 检查以下项目(它们应该出现在框的顶部) 启用大写字母锁定

此时,您应该能够在终端(和 iterm2)中使用大写锁定作为控制,并将大写锁定作为其他任何地方的大写锁定。警告,如果您在大写锁定打开时进入终端,您将无法将其关闭。

(您可能需要在 System Preferences -> Keyboard -> Modifier Keys 中将 CapsLock 设置为 No Action)


如果您希望这也适用于 MacVim 更改

<only>TERMINAL</only>

<only>TERMINAL, VI</only>
于 2014-08-27T21:10:11.027 回答