在Mac OS X中将Caps Lock用作Esc
如何在Mac OS X中使Caps Lock像Esc一样工作?
这里是我用一个全面的,直观的解答(包括链接)来解释如何使用Seil (以前称为PCKeyboardHack
)来实现这个function。
- 首先,进入系统偏好设置 ,select键盘 ,然后键盘选项卡 (第一个选项卡),然后单击修改键 :
在popup的对话框中设置Caps Lock Key to No Action
:
2)现在, 请点击这里下载Seil并安装它:
3)安装完成后,您将安装一个新的应用程序(Mountain Lion和更新版本),如果您使用的是较旧的操作系统,则可能需要检查新的“系统首选项”窗格:
4)勾选“更改大写locking”并input“53”作为退出键的代码:
你完成了! 如果不能立即运行,则可能需要重新启动机器。
印象深刻? 想要更多的控制?
您可能还想看看KeyRemap4MacBook ,它实际上是pqrs.org的旗舰键盘重新映射工具 – 它也是免费的。
如果你喜欢这些工具,你可以捐款 。 我和他们没有任何关系,但是我一直在使用这些工具很长一段时间,不得不说这些工具在维护这些工具方面做得非常出色,增加了function并修复了错误。
下面是一个屏幕截图,显示一些(数百个)可预先select的选项:
PQRS还有一个称为NoEjectDelay的很好的实用程序,您可以与KeyRemap4MacBook结合使用来重新编程popup键。 经过一点调整,我有我的设置切换AirPort Wifi。
重新映射Mac键盘时,这些实用程序提供无限的灵活性。 玩的开心!
从MacOS 10.12.1开始,可以将Caps Lock本身重新映射到Esc (系统首选项 – >键盘 – >修改键)。
这是可能的。
解决scheme1
来自TrueAffection.net上的一个arcticle。
- 下载PCKeyboardHack并安装它。
- 在系统偏好设置中转到PCKeyboardHack。
- 启用“更改大写locking”并将键码设置为53。
解决scheme2
此解决scheme不涉及修补键盘驱动程序,但给你一个Vim特定的解决scheme。
OS X支持将大写locking键映射到一大堆键,但是您必须“手动”,编辑.plist文件。 这个过程描述在http://www.macosxhints.com/article.php?story=20060825072451882'>这个提示。; 作为该提示的附录,我build议您首先在“系统偏好设置”中将“大写locking”设置为“无”,然后只需更改.plist文件中的一个值即可。 另外,您当然也可以使用Property List Editor而不是经过XML转换步骤。
诀窍是将大写locking键映射到不在大多数键盘上的帮助键(代码6)。 但是,如果是,它将被视为插入键,您可能不会使用它,因为您询问重新映射Caps Lock以防止伸出双手;)
然后,您可以将帮助和插入键映射到vim中的Esc。
map <Help> <Esc> map! <Help> <Esc> map <Insert> <Esc> map! <Insert> <Esc>
这将适用于gvim(Vim.app)。 我没有得到它在terminal与VIM的工作,我还没有testing与MacVim。
所以,这是一个复杂的,一半的解决scheme或安装第三方的骇客。 你的select;)
编辑:刚注意到解决scheme3,如果您使用MacVim,您可以使用Ctrl,Option和Command作为Esc。 使用系统偏好设置将Caps Lock映射到其中一个键是很简单的。
使用macOS Sierra将Caps Lock键映射到Esc现在更容易了。
-
打开系统首选项→键盘。
-
点击右下angular的修饰键。
-
点击您要重新映射的硬件按键旁边的下拉框,然后select退出。
-
单击确定并closures系统首选项。
Seil尚未在macOS Sierra(10.12 beta)上提供。 因此,我一直在使用键盘大师这些设置:
感谢这个github评论: https : //github.com/tekezo/Seil/issues/68#issuecomment-230131664
我知道如何做的唯一的事情是映射大写locking到控制,或选项或命令。 这可以通过系统偏好设置的键盘和鼠标窗格来完成。 点击左下方的“Modifier Keys”,你可以将Caps Lock,Control,Option和Command重新映射到其中的任何一个。
@Craig:这表明Caps Lock 可以用作普通的 – 也就是非切换键。 在我的MacBook上,由于我已将Caps Lock重新映射为Control,因此Caps Lock灯不会亮起。 它只是像控制键一样。
尝试了几种解决scheme后,我有一些注意事项:
DoubleCommand不允许你交换esc和大写locking。
PCKeyboardHack 将允许您映射大写locking逃脱, 但是没有能力将转义映射到大写字母 。 最近的版本将允许您通过编辑这两个键来执行完整的交换。
这可能或可能不足以满足您的需求(我知道这是我的)。
如果你不想安装第三方应用程序,你真的只关心iTerm内的vim,下面的工作:
按照此处所述重新映射CapsLock以进行帮助。
短版本:使用plutil或类似的编辑~/Library/Preferences/ByHost/.GlobalPreferences*.plist
,它应该看起来类似于:
<key>HIDKeyboardModifierMappingDst</key> <integer>6</integer> <key>HIDKeyboardModifierMappingSrc</key> <integer>0</integer>
重新开始! 简单的注销和login不适合我。
在iTerm中,为帮助添加一个新的键映射:发送对应于Escape的hex代码0x1b。
我知道这不是所要求的,但我认为很多人寻找这样的解决scheme的意图实际上是这个更专业化的变种。
为了使用PCKeyboardHack和KeyRemap4MacBook实际上将换码键与大写locking键(不仅仅是映射到另一个)进行交换,您必须按照此线程中的说明将大写字母locking键映射到未使用的键码键盘,但由KeyRemap4MacBook(例如110)来解释。 然后,在PCKeyboardHack中,select映射该键码的适当选项以进行转义(在110的情况下,它是“应用程序转义键”)。 以下是您的KeyRemap4MacBook首选项的外观(只要您select了“仅显示启用”checkbox)。
我原本试图把这个信息作为编辑来发表,但是却被拒绝了。 我鼓励任何想要走上我描述的路线的人先读他/她的回答。
Seil在macOS Sierra上不起作用,所以我使用Karabiner元素 ,从https://pqrs.org/latest/karabiner-elements-latest.dmg下载。;
使用GUI或将以下内容放入~/.karabiner.d/configuration/karabiner.json
:
{ "profiles" : [ { "name" : "Default profile", "selected" : true, "simple_modifications" : { "caps_lock" : "escape" } } ] }
我对这里的任何答案都不满意,并且正在寻找一个命令行解决scheme 。
在macOS Sierra 10.12中,苹果推出了一种新的方式让用户重新映射密钥。
- 无需摆弄系统graphics用户界面
- 没有特别的权限是必需的
- 完全可定制
- 不需要安装PCKeyboardHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay等任何第三方废话
如果这听起来不错,看看hidutil
。
例如,要重新映射大写locking以进行转义,请参阅关键字表,并发现大写locking具有使用代码0x39,而转义具有使用代码0x29。 把这些代码或者用hex值0x700000000代码或者像这样放在源和目标中:
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x700000029}]}'
您可以在同一个命令中添加其他映射。 就个人而言,我喜欢重新映射大写locking退格,并重新映射退格删除:
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A}, {"HIDKeyboardModifierMappingSrc":0x70000002A,"HIDKeyboardModifierMappingDst":0x70000004C}]}'
要查看当前映射:
hidutil property --get "UserKeyMapping"
系统重新启动后,您的更改将会丢失。 如果你想让它们坚持下来,把它们放在一个脚本中,并设置一个login钩子:
sudo defaults write com.apple.loginwindow LoginHook /path/to/login_script.sh
您还可以使用DoubleCommand来重新映射此键和其他键。
IIRC,它将Caps Lock映射到Esc。
我遇到了这个旧线程search相同的function。 到目前为止,这个工具是我发现似乎工作得很好(在10.5.6),没有太多的努力:
http://www.pqrs.org/tekezo/macosx/keyremap4macbook/extra.html
PCKeyboardHack修复山狮https://github.com/tekezo/PCKeyboardHack/issues/8#issuecomment-6940640
在雪豹打开键盘偏好设置,然后单击修饰键…你可以改变大写locking键控制,选项或命令。