Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在Mac OS X中使用Caps Lock作为Esc_Macos_Vim_Capslock - Fatal编程技术网

Macos 在Mac OS X中使用Caps Lock作为Esc

Macos 在Mac OS X中使用Caps Lock作为Esc,macos,vim,capslock,Macos,Vim,Capslock,如何使Caps Lock像Mac OS X中的Esc一样工作?我只知道如何将Caps Lock映射到控件、选项或命令。这可以通过系统首选项的键盘和鼠标窗格完成。单击左下角的“修改器键”,您将能够将Caps Lock、Control、Option和Command重新映射到其中任何一个 @克雷格: 这表明Caps Lock可以用作普通键(即非切换键)。在我的MacBook上,由于我已将Caps Lock重新映射为Control,Caps Lock指示灯从不亮起。它的作用就像控制键 这是可能的 解决方

如何使Caps Lock像Mac OS X中的Esc一样工作?

我只知道如何将Caps Lock映射到控件、选项或命令。这可以通过系统首选项的键盘和鼠标窗格完成。单击左下角的“修改器键”,您将能够将Caps Lock、Control、Option和Command重新映射到其中任何一个

@克雷格: 这表明Caps Lock可以用作普通键(即非切换键)。在我的MacBook上,由于我已将Caps Lock重新映射为Control,Caps Lock指示灯从不亮起。它的作用就像控制键

这是可能的

解决方案1 来自TrueAffection.net

  • 下载PCKeyboardHack并安装它
  • 转到系统首选项中的PCKeyboardHack
  • 启用“更改上限锁定”并将钥匙代码设置为53
解决方案2 此解决方案不涉及修补键盘驱动程序,但为您提供了一个特定于Vim的解决方案

OSX支持将Caps-Lock键映射到一大堆键,但您必须“手动”编辑.plist文件。中描述了该过程。作为该提示的补充,我建议您首先在系统首选项中将Caps Lock设置为None,然后只需要在.plist文件中更改一个值。当然,您也可以使用属性列表编辑器,而不必执行XML转换步骤

诀窍是将大写锁定键映射到帮助键(代码6),这在大多数键盘上都不存在。但如果是,它将被视为插入键,您可能无论如何都不会使用它,因为您要求重新映射Caps锁以防止伸出手;)

然后可以将帮助和插入键映射到vim中的Esc

map
地图!
地图
地图!
这将适用于gvim(Vim.app)。我没有让它在终端中与vim一起工作,也没有用MacVim对它进行测试

因此,这是一个相当复杂、不成熟的解决方案,或者安装第三方黑客。你的选择;)


编辑:刚刚注意到解决方案3,如果您正在使用,则可以使用Ctrl、Option和Command作为Esc。使用系统首选项,将Caps Lock映射到其中一个键非常简单。

您还可以使用DoubleCommand重新映射此键和其他键


IIRC,它将Caps Lock映射到Esc。

尝试了几种解决方案后,我有一些注意事项:

将不允许您交换esc和caps lock

将允许您将capslock映射到escape,但无法将escape映射到capslock。最新版本将允许您通过编辑两个键来执行完全交换


这可能足以满足您的需要,也可能不足以满足您的需要(我知道这是我的需要)。

打开键盘首选项,然后单击修改键。。。您可以将caps lock键更改为control、option、escape或command


编辑:如中所述,较新版本的MacOS现在本机支持重新绑定Caps Lock以转义。因此,不再需要安装第三方软件来实现这一点


下面是我尝试的一个全面、直观的答案(带有链接),介绍如何使用(以前称为
PCKeyboardHack
)实现这一点

  • 首先,进入系统首选项,选择键盘,然后选择键盘选项卡(第一个选项卡),然后单击修改键:
  • 在弹出对话框中,将大写锁定键设置为
    无操作

    {
      "profiles" : [
        {
          "name" : "Default profile",
          "selected" : true,
          "simple_modifications" : {
            "caps_lock" : "escape"
          }
        }
      ]
    }
    

    2) 现在,安装它:

    3) 安装后,您将安装一个新的应用程序(Mountain Lion和更新版本),如果您使用的是较旧的操作系统,您可能需要检查新的系统首选项窗格:

    4) 选中显示“更改上限锁定”的框,并输入“53”作为逃生钥匙的代码:

    你就完了如果它不能立即工作,您可能需要重新启动计算机

    印象深刻想要更多的控制? 您可能还想从
    pqrs.org
    中查看哪一个是真正的旗舰键盘重新映射工具-它也是免费的

    如果你喜欢这些工具,你可以。我与他们没有任何关系,但我已经使用这些工具很长时间了,不得不说那边的人在维护这些工具、添加功能和修复bug方面做得非常出色

    这里的屏幕截图显示了几个(数百个)预先选择的选项:

    PQRS还有一个很棒的实用程序,名为,您可以与结合使用来重新编程弹出键。经过一点调整后,我已经设置好切换机场Wifi


    这些实用程序在重新映射Mac键盘时提供了无限的灵活性。玩得开心

    为了使用PCKeyboardHack和KeyRemap4MacBook实际交换escape键和caps lock键(不只是将一个键映射到另一个键),您必须按照中的说明,将caps lock键映射到键盘未使用但由KeyRemap4MacBook负责的键代码(例如110)。然后,在PCKeyboardHack中,选择适当的选项来映射要转义的密钥代码(在110的情况下,它是“要转义的应用程序密钥”)。以下是您的KeyRemap4MacBook首选项的外观(前提是您选中了“仅显示已启用”复选框)


    我最初试图将此信息发布到,但被拒绝。我鼓励任何想走我描述的路线的人首先阅读他/她的回答。

    如果你不想安装第三方应用程序,并且你真的只关心iTerm内部的vim,那么以下方法可以起作用:

    重新映射CapsLock以提供所述帮助

    短版本:使用plutil或类似工具编辑
    ~/Library/Preferences/ByHost/.GlobalPreferences*.plist
    ,其外观应类似于此:

    <key>HIDKeyboardModifierMappingDst</key>
    <integer>6</integer>
    <key>HIDKeyboardModifierMappingSrc</key>
    <integer>0</integer>
    
    HidKeyboardModifierMappingST
    6.
    HIDKeyboardModifierMappingSrc
    0
    
    重新开始!一个简单的注销和登录
    {
      "profiles" : [
        {
          "name" : "Default profile",
          "selected" : true,
          "simple_modifications" : {
            "caps_lock" : "escape"
          }
        }
      ]
    }
    
    hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x700000029}]}'
    
    hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A}, {"HIDKeyboardModifierMappingSrc":0x70000002A,"HIDKeyboardModifierMappingDst":0x70000004C}]}'
    
    hidutil property --get "UserKeyMapping"
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <!-- Place in ~/Library/LaunchAgents/ -->
    <!-- launchctl load com.ldaws.CapslockBackspace.plist -->
    <plist version="1.0">
      <dict>
        <key>Label</key>
        <string>com.ldaws.CapslockEsc</string>
        <key>ProgramArguments</key>
        <array>
          <string>/usr/bin/hidutil</string>
          <string>property</string>
          <string>--set</string>
          <string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A},{"HIDKeyboardModifierMappingSrc":0x70000002A,"HIDKeyboardModifierMappingDst":0x70000004C}]}</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
      </dict>
    </plist>
    
    launchctl load com.ldaws.CapslockBackspace.plist