我如何使大写锁定工作像Esc在Mac OS X?
当前回答
您还可以使用DoubleCommand来重新映射这个键和其他键。
IIRC,它会将Caps Lock映射为Esc。
其他回答
我对这里的任何答案都不满意,于是开始寻找命令行解决方案。
在macOS Sierra 10.12版本中,苹果为用户引入了一种重新映射按键的新方式。
不需要摆弄系统gui 不需要特殊权限 完全可定制的 不需要安装任何第三方的垃圾,如PCKeyboardHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay
如果这听起来不错,看看hidutil。
例如,要将caps-lock重新映射为escape,请参考键表并发现caps-lock的使用代码为0x39,而escape的使用代码为0x29。将这些代码或十六进制值0x700000000放在源文件和dest文件中,如下所示:
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x700000029}]}'
您可以在同一个命令中添加其他映射。就我个人而言,我喜欢将caps-lock重映射为退格,并将退格重映射为delete:
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>
我把这些内容放在~/Library/LaunchAgents/com. ldws . capslockbackspace的文件中。Plist然后执行:
launchctl load com.ldaws.CapslockBackspace.plist
编辑:如本回答中所述,新版本的MacOS现在支持将Caps Lock重新绑定为Escape。因此,不再需要安装第三方软件来实现这一目标。
下面是我对如何使用Seil(以前称为PCKeyboardHack)实现这一目标的一个全面的、可视化的回答(带有链接)。
首先,进入系统首选项,选择键盘,然后选择键盘选项卡(第一个选项卡),然后单击修改键:
在弹出的对话框中将“Caps Lock Key”设置为“No Action”:
2)现在,点击这里下载并安装Seil:
3)安装后,你会安装一个新的应用程序(Mountain Lion和更新的),如果你是在一个较旧的操作系统上,你可能需要检查一个新的系统首选项窗格:
4)选中“Change Caps Lock”,输入“53”作为escape键的代码:
这样就完成了!如果它不能立即工作,您可能需要重新启动计算机。
深刻的印象吗?想要更多的控制?
你可能还想看看KeyRemap4MacBook,这实际上是pqrs.org上的旗舰键盘重映射工具——它也是免费的。
如果你喜欢这些工具,你可以捐款。我和他们没有任何关系,但我已经使用这些工具很长一段时间了,不得不说那里的家伙在维护这些工具、添加功能和修复错误方面做得非常出色。
下面是一个截图,展示了几个(数百个)可预选选项:
PQRS还有一个叫做NoEjectDelay的实用程序,你可以结合KeyRemap4MacBook来重新编程弹出键。稍作调整后,我将我的手机设置为切换机场Wifi。
这些实用程序在重新映射Mac键盘时提供了无限的灵活性。玩得开心!
如果你不想安装第三方应用程序,并且你真的只关心iTerm中的vim,下面的方法是有效的:
如上所述,将CapsLock重新映射为Help。
短版本:使用plutil或类似编辑~/Library/Preferences/ByHost/. globalpreferences *。Plist,它应该看起来像这样:
<key>HIDKeyboardModifierMappingDst</key>
<integer>6</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>0</integer>
重新启动!简单的登出和登录对我来说不起作用。
在iTerm中,为Help添加一个新的键映射:发送十六进制代码0x1b,它对应于Escape。
我知道这并不完全是要求的,但我认为许多人寻找这样的解决方案的目的实际上是这个更专业的变体。
您还可以使用DoubleCommand来重新映射这个键和其他键。
IIRC,它会将Caps Lock映射为Esc。
Seil还不能在macOS Sierra上工作,所以我使用Karabiner Elements,从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"
}
}
]
}
推荐文章
- 如何配置Mac OS X术语,使git有颜色?
- 如何在可视块模式插入?
- 我如何确定文件编码在OS X?
- 使iTerm以与其他操作系统相同的方式翻译“元键”
- 错误:无法在ARM处理器上的Homebrew中安装英特尔默认前缀(/usr/local)
- 在Mac OS X上哪里安装Android SDK ?
- 强迫自己掌握vi的最好方法是什么?
- Mac/OS X上的/var/lib/docker在哪里
- Xcode构建失败“架构x86_64未定义的符号”
- 如何回到行之前编辑的最后一个在Vim?
- 在OSX 10.11中安装Scrapy时,“OSError: [Errno 1]操作不允许”(El Capitan)(系统完整性保护)
- 如何在Mac OS X 10.6中使硬件发出哔哔声
- 从Cocoa应用程序执行一个终端命令
- Android Studio无法找到有效的Jvm(与MAC OS相关)
- 如何跳转到一个特定的人物在vim?