映射大写仅锁定在vim中?

Posted

技术标签:

【中文标题】映射大写仅锁定在vim中?【英文标题】:Mapping caps lock in vim only? 【发布时间】:2014-10-21 07:10:25 【问题描述】:

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

【问题讨论】:

可能重复:Using Caps Lock as Esc in Mac OS X This answer 似乎做了你想做的事? 刚刚意识到我确实很想将其映射到Ctrl 并编辑了我的问题。 @Carpetsmoker 我尝试了 Seil(PCKeyboardHack 的当前版本),它似乎没有任何方法可以创建特定于应用程序的映射。 终端 vim 或 macvim。在 macvim 中可能比在终端 vim 中更容易。 (它可能几乎不可能在终端 vim 上表现得很好) @FDinoff 哦,亲爱的。我希望终端 vim ......如果我可以为所有终端创建一个特定于应用程序的映射,会这样做吗?这对我来说很好。 【参考方案1】:

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

    下载并安装Seil和Karabiner 打开 Seil 并将大写锁定更改为密钥代码 110(PC 应用程序密钥)

    打开 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>
    

    单击更改密钥选项卡上的重新加载 XML

    检查以下项目(它们应该出现在框的顶部)

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

(您可能需要在系统偏好设置 -> 键盘 -> 修改键中将 CapsLock 设置为无操作)


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

<only>TERMINAL</only>

<only>TERMINAL, VI</only>

【讨论】:

非常感谢!这正是我需要的。太棒了。 大写锁定指示灯也将不再点亮,因为它将由Seil/Karabiner处理!

以上是关于映射大写仅锁定在vim中?的主要内容,如果未能解决你的问题,请参考以下文章

Win10下将CapsLock键(大小写锁定键)转换映射成Ctrl键

OSX:将大写锁定键重新映射到功能键或 Fn?

vim 大写键如何表示

如何在 VIM 中映射 CAPS LOCK 键?

当同时按下大写锁定和命令键时,keylayout 文件中有啥修饰符?

将大写锁定设置为更高级别