如何Caps Lock像EscMac OS X 那样进行工作?
Ctrl + [
对esc
。对Vim有用。
如何Caps Lock像EscMac OS X 那样进行工作?
Ctrl + [
对esc
。对Vim有用。
Answers:
编辑:正如在描述这个答案,MacOS的较新版本现在已经重新绑定原生支持Caps Lock来Escape。因此,不再需要安装第三方软件来实现此目的。
这是我针对如何使用Seil(以前称为PCKeyboardHack
)实现此目标的全面,直观的逐步解答(带有链接)的尝试。
在弹出对话框中,将Caps Lock Key设置为No Action
:
2)现在,单击此处下载Seil并安装它:
3)安装之后,您将安装新的应用程序(Mountain Lion和更新的),如果您使用的是旧版OS,则可能需要检查新的“系统偏好设置”窗格:
4)选中“更改大写锁定”框,然后输入“ 53”作为退出键的代码:
大功告成!如果无法立即运行,则可能需要重新启动计算机。
您可能还想看看KeyRemap4MacBook,它实际上是来自旗舰键盘重新映射工具pqrs.org
-它也是免费的。
如果您喜欢这些工具,可以捐款。我与他们没有任何关系,但是我已经使用这些工具很长时间了,不得不说那里的人在维护这些工具,添加功能和修复错误方面做得很出色。
这是一个屏幕截图,显示了几个(数百个)预选选项:
PQRS还具有一个名为NoEjectDelay的实用程序,您可以将其与KeyRemap4MacBook结合使用以对Eject密钥进行重新编程。稍作调整后,我将其设置为切换AirPort Wifi。
当重新映射Mac键盘时,这些实用程序提供了无限的灵活性。玩得开心!
CTRL-[
实际上等同于ESC。stackoverflow.com/questions/5030164/...
我对这里的任何答案都不满意,因此一直在寻找命令行解决方案。
在macOS Sierra 10.12中,Apple引入了一种供用户重新映射密钥的新方法。
如果对您来说听起来不错,请看一下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
LoginHook
方法正常运行-我猜可能是它执行后为我的斯堪的纳维亚键盘选择了本地键盘设置吗?无论如何,stackoverflow.com/a/ 22872222/ 874188注意到LoginHook
已弃用,并主张launchd
改为使用。
这是可能的。
从一个arcticle上TrueAffection.net。
- 下载并安装PCKeyboardHack。
- 转到“系统偏好设置”中的PCKeyboardHack。
- 启用“更改大写锁定”并将键码设置为53。
该解决方案不涉及修补键盘驱动程序,而是为您提供了Vim特定的解决方案。
OS X支持将Caps Lock键映射到一大堆键,但是您必须“手动”编辑.plist文件。本文介绍了该过程。作为该提示的附录,我建议您首先在“系统偏好设置”中将Caps-Lock设置为“无”,然后只需更改.plist文件中的一个值即可。另外,您当然可以使用属性列表编辑器,而不用执行XML转换步骤。
诀窍是将Caps Lock键映射到Help键(代码6),大多数键盘上没有。但是如果是这样,它将被视为插入键,您可能根本不会使用它,因为您要求重新映射Caps Lock以防止伸出手;)
然后,您可以将帮助和Insert密钥映射到Escvim中。
map <Help> <Esc>
map! <Help> <Esc>
map <Insert> <Esc>
map! <Insert> <Esc>
这将适用于gvim(Vim.app)。我没有在终端中使用vim来使用它,也没有使用MacVim对其进行测试。
因此,这是一个复杂的,半生半熟的解决方案,或者是安装了第三方黑客。您的选择;)
编辑:只注意到解决方案3,如果您使用的MacVim可以使用Ctrl,Option并且Command作为Esc。使用“系统偏好设置”可以轻松地将Caps Lock映射到这些键之一。
现在Caps Lock,Esc使用macOS Sierra 将密钥映射到要容易得多。
打开系统偏好设置→键盘。
单击右下角的“修饰键”按钮。
点击您要重新映射的硬件密钥旁边的下拉框,然后选择Escape。
单击确定,然后关闭系统偏好设置。
我唯一知道的方法是将Caps Lock映射到Control,Option或Command。这可以通过“系统偏好设置”的“键盘和鼠标”面板来完成。单击左下角的“修改键”,您将能够将Caps Lock,Control,Option和Command重新映射到其中的任何一个。
@Craig:这表明可以将Caps Lock 用作普通键(即非切换键)。在MacBook上,由于我已重新将Caps Lock映射到Control,因此Caps Lock灯永远不会点亮。它就像控制键一样。
Seil尚未在macOS Sierra(10.12 beta)上可用。因此,我一直在使用Keyboard Maestro进行以下设置:
归功于这个github评论:https : //github.com/tekezo/Seil/issues/68#issuecomment-230131664
在尝试了几种解决方案后,我有一些注意事项:
DoubleCommand会不会让你掉ESC和大写锁定。
PCKeyboardHack 将允许您映射大写锁定以逃脱,但没有将转义映射到大写锁定的功能。最新版本允许您通过编辑两个键来执行完全交换。
这可能不足或不足以满足您的需求(我知道这是我的)。
如果您不想安装第三方应用程序,而您实际上只关心iTerm内的vim,可以使用以下方法:
重映射的CapsLock帮助所描述这里。
简短版本:使用plutil或类似的东西进行编辑~/Library/Preferences/ByHost/.GlobalPreferences*.plist
,它应该类似于以下内容:
<key>HIDKeyboardModifierMappingDst</key>
<integer>6</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>0</integer>
重新开始!简单的注销和登录对我不起作用。
在iTerm中,为“帮助”添加一个新的键映射:发送对应于Escape的十六进制代码0x1b。
我知道这并不是所要的,但我认为许多人正在寻找这样的解决方案,实际上是这个更专业的变体。
为了使用PCKeyboardHack和KeyRemap4MacBook实际上将大写锁定键与大写锁定键交换(而不仅仅是映射到另一个),您必须遵循该线程中的说明,将大写锁定键映射到键盘上未使用的键码。键盘,但由KeyRemap4MacBook(例如110)占。然后,在PCKeyboardHack中,选择适当的选项以映射该键码以进行转义(在110的情况下,它是“要转义的应用程序键”)。这是KeyRemap4MacBook首选项的外观(假设您已选中“仅启用显示”复选框)。
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"
}
}
]
}
您还可以使用DoubleCommand重新映射此键和其他键。
IIRC,它将Caps Lock映射到Esc。
Karabiner-Elements一个功能强大且稳定的macOS键盘定制程序。(免费软件)
https://pqrs.org/osx/karabiner/index.html
为我工作,为Mojave将大写锁定更改为退格