如何在Mac OS X中进行Caps Lock工作Esc?
编辑:正如在描述这个答案,MacOS的较新版本现在有重新绑定原生支持Caps Lock来Escape.因此,不再需要安装第三方软件来实现此目的.
这是我尝试使用Seil(以前称为PCKeyboardHack
)实现此目的的全面,直观的回答(链接).
首先,进入系统偏好设置,选择键盘,然后选择键盘选项卡(第一个选项卡),然后单击修改键:
在弹出的对话框中,将Caps Lock Key设置为No Action
:
2)现在,点击这里下载Seil并安装它:
3)安装完成后,您将安装一个新的应用程序(Mountain Lion和更新版本),如果您使用的是较旧的操作系统,则可能需要检查新的"系统偏好设置"窗格:
4)选中"更改大写锁定"框并输入"53"作为转义键的代码:
而且你已经完成了!如果它不能立即工作,您可能需要重新启动计算机.
您可能还想查看KeyRemap4MacBook,它实际上是旗舰键盘重映射工具pqrs.org
- 它也是免费的.
如果你喜欢这些工具,你可以捐款.我与他们没有任何关系,但我已经使用这些工具很长一段时间了,不得不说那边的人一直在做这些工作,添加功能和修复bug.
这是一个屏幕截图,显示了一些(数百个)预选选项:
PQRS还有一个名为NoEjectDelay的实用程序,您可以将其与KeyRemap4MacBook结合使用,以重新编程Eject键.稍作调整之后我就开始拨打AirPort Wifi.
重新映射Mac键盘时,这些实用程序提供无限的灵活性.玩得开心!
从macOS 10.12.1开始,可以重新映射Caps Lock到Esc本机(系统首选项 - >键盘 - >修改键).
这是可能的.
从一个arcticle上TrueAffection.net.
下载PCKeyboardHack并安装它.
转到系统偏好设置中的PCKeyboardHack.
启用"更改大写锁定"并将键码设置为53.
此解决方案不涉及修补键盘驱动程序,但为您提供Vim特定的解决方案.
OS X支持将Caps Lock键映射到一大堆键,但您必须"手动",编辑.plist文件.本文描述了该过程.作为该提示的补充,我建议您首先在系统偏好设置中将Caps-Lock设置为无,然后您只需要更改.plist文件中的一个值.此外,您当然可以使用属性列表编辑器,而不是通过XML转换步骤.
诀窍是将Caps Lock键映射到帮助键(代码6),这不在大多数键盘上.但如果它是,它将被视为插入键,你可能不会使用它,因为你要求重新映射你的大写锁定以防止伸出你的手;)
然后,您可以将帮助和Insert密钥映射到Escvim中.
mapmap! map map!
这适用于gvim(Vim.app).我没有让它与终端中的vim一起工作,我没有用MacVim测试它.
因此,它是一个复杂的,半生不熟的解决方案或安装第三方hackery.你的选择;)
编辑:刚刚注意到解决方案3,如果您正在使用MacVim,您可以使用Ctrl,Option并Command作为Esc.使用"系统偏好设置",将Caps Lock映射到其中一个键非常简单.
现在使用macOS Sierra 映射Caps Lock密钥要容易得多Esc.
打开系统首选项→键盘.
单击右下角的"修改键"按钮.
单击要重新映射的硬件密钥旁边的下拉框,然后选择Escape.
单击确定并关闭系统偏好设置.
https://9to5mac.com/2016/10/25/remap-escape-key-action-macbook-pro-macos-sierra-10-12-1-modifier-keys/
我对这里的任何答案都不满意,并寻找命令行解决方案.
在macOS Sierra 10.12中,Apple为用户重新映射密钥引入了一种新方法.
无需摆弄系统GUI
无需特殊权限
完全可定制
无需安装任何第三方垃圾,如PCKeyboardHack/Seil/Karabiner/KeyRemap4MacBook/DoubleCommand/NoEjectDelay
如果这听起来不错,请看一下hidutil
.
例如,要重新映射大写锁定以转义,请参阅密钥表并查找大写锁定使用代码0x39并且转义具有使用代码0x29.将这些代码或十六进制值0x700000000放入源代码中,并按以下方式设置:
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x700000029}]}'
您可以在同一命令中添加其他映射.就个人而言,我喜欢将大写字母重新映射到退格键,并重新映射退格键以删除:
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A}, {"HIDKeyboardModifierMappingSrc":0x70000002A,"HIDKeyboardModifierMappingDst":0x70000004C}]}'
要查看当前映射:
hidutil property --get "UserKeyMapping"
系统重启时您的更改将丢失.如果您希望它们持久化,请将它们放在脚本中并设置登录钩子:
sudo defaults write com.apple.loginwindow LoginHook /path/to/login_script.sh
我知道该怎么做才能将Caps Lock映射到Control,或Option或Command.这可以通过"系统偏好设置"的"键盘和鼠标"面板完成.单击左下方的"修改键",您将能够将大写锁定,控制,选项和命令重新映射到其中任何一个.
@Craig:这表明Caps Lock 可以用作普通键 - 即非切换键.在我的MacBook上,由于我已将Caps Lock重新映射到Control,因此Caps Lock指示灯从不亮起.它只是像Control键一样.
在macOS Sierra(10.12测试版)上尚未提供Seil.因此,我一直在使用Keyboard Maestro这些设置:
感谢这个github评论:https://github.com/tekezo/Seil/issues/68#issuecomment-230131664
尝试过这些解决方案后,我有一些注意事项:
DoubleCommand会不会让你掉ESC和大写锁定.
PCKeyboardHack 将允许您映射封锁以逃脱,但是没有能力将escape映射到capslock.最新版本允许您通过编辑两个键来执行完整交换.
这可能会或可能不足以满足您的需求(我知道这是我的需要).
如果您不想安装第三方应用程序并且您真的只关心iTerm中的vim,则以下工作:
重映射的CapsLock为描述帮助这里.
简短版本:使用plutil或类似编辑~/Library/Preferences/ByHost/.GlobalPreferences*.plist
,它看起来应该类似于:
HIDKeyboardModifierMappingDst 6 HIDKeyboardModifierMappingSrc 0
重新开始!简单的注销和登录对我来说不起作用.
在iTerm中,为Help添加一个新的键映射:发送十六进制代码0x1b,它对应于Escape.
我知道这不是所要求的,但我认为很多人寻找这样的解决方案的意图实际上是这种更专业的变体.