我如何使大写锁定工作像Esc在Mac OS X?
当前回答
如果你不想安装第三方应用程序,并且你真的只关心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将不允许你交换esc和caps-lock。
PCKeyboardHack将允许您将转义映射到大写,但不具有将转义映射到大写的能力。最新版本将允许您通过编辑两个键来执行完整的交换。
这可能满足你的需求,也可能不满足(我知道这是我的需求)。
如果你不想安装第三方应用程序,并且你真的只关心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。
我知道这并不完全是要求的,但我认为许多人寻找这样的解决方案的目的实际上是这个更专业的变体。
Karabiner-Elements 一个功能强大和稳定的键盘定制macOS。(免费)
https://pqrs.org/osx/karabiner/index.html
为我在莫哈韦把大写键改成退格键
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"
}
}
]
}
这是有可能的。
解决方案1
摘自trueintimacy网站上的一篇文章。
下载并安装PCKeyboardHack。 进入系统首选项中的PCKeyboardHack。 启用“Change Caps Lock”并设置键码为53。
解决方案2
这个解决方案不涉及修补键盘驱动程序,而是提供了一个特定于Vim的解决方案。
OS X支持将大写锁键映射到一大堆键,但你必须“手动”,编辑.plist文件。本文描述了这个过程。作为提示的补充,我建议你首先在系统首选项中将Caps-Lock设置为None,然后你只需要更改.plist文件中的一个值。当然,您也可以使用属性列表编辑器,而不是执行XML转换步骤。
诀窍是将“Caps Lock”键映射到“Help”键(代码6),这在大多数键盘上都没有。但如果它是,它将被视为插入键,你可能不会使用它,因为你要求重新映射你的Caps Lock以防止伸展你的手;)
然后你可以在vim中将帮助键和插入键映射为Esc键。
map <Help> <Esc>
map! <Help> <Esc>
map <Insert> <Esc>
map! <Insert> <Esc>
这将适用于gvim (Vim.app)。我没有让它与终端中的vim一起工作,我也没有用MacVim测试它。
因此,这是一个相当复杂的、不成熟的解决方案,或者安装一个第三方的黑客。你自己选;)
编辑:刚刚注意到解决方案3,如果你使用MacVim,你可以使用Ctrl,选项和命令作为Esc。使用系统首选项,将Caps Lock映射到其中一个键是很简单的。
推荐文章
- 警告用户/local/mysql/data目录不属于mysql用户
- 为什么Vim使用~扩展名保存文件?
- 在Mac OS X上使用鼠标聚焦(加上自动提升)
- 如何在Vim或Linux中将空格转换为制表符?
- 我在哪里可以找到Mac OS X Lion的“make”程序?
- 当我没有Mac的时候,在Mac/Safari上测试web应用程序
- 在Mac上安装MySQL后,使用ALTER USER语句重置MySQL root密码
- my.cnf文件在macOS上的位置
- 如何从Mac OS X上卸载MySQL ?
- 查找当前可执行文件的路径,不包含/proc/self/exe
- 我如何使用vimdiff来解决git合并冲突?
- 在Vim中删除当前缓冲区的文件名/路径
- Git在终端提交时打开VIM,但无法返回终端
- 在Mac上安装R -警告消息:设置LC_CTYPE失败,使用“C”
- 请参阅编辑器中的换行符和回车