如何在不使用第三方程序的情况下重新映射我的 OSX 键盘?
Posted
技术标签:
【中文标题】如何在不使用第三方程序的情况下重新映射我的 OSX 键盘?【英文标题】:How can I remap my OSX keyboard without using third-party programs? 【发布时间】:2016-12-08 12:02:26 【问题描述】:我目前正在使用 Seil 重新映射大写锁定以在 OSX 10.11 上转义。每当我检查 htop 只是为了查看当系统没有做太多任何事情时(程序打开但没有做太多处理)时正在运行的东西,Seil 总是在那里并且它的 cpu 和内存使用波动。这可能没什么大不了的,但考虑到我只将 vim 用于偶尔的纯文本文件,不得不总是运行这个东西感觉很疯狂。我不想每次使用 vim 时都必须启动 Seil。我最好的选择是禁用大写锁定并将桥接物理连接到转义键吗? Vim 是 OSX 的标准配置,如果不将逃逸重新映射到某些东西就无法使用,所以我认为这会出现,而不是依赖其他人为其制作应用程序。
【问题讨论】:
你有 xmodmap 吗?我不知道这是否适用于 OS X。 @yellowantphil 除非它带有你必须安装的所有 xcode 东西才能让一堆 *nix 东西工作。我还没有听说过,所以我将不得不四处阅读。我只是想可能改变 vim (插件?)以使用大写锁定(或其他东西)作为转义。穿鞋总比穿皮衣之类的好,但我不确定这是否可行。 特别是对于 vim,您还可以使用Ctrl-]
- 或者此列表中有更多想法:vim.wikia.com/wiki/Avoid_the_escape_key
【参考方案1】:
将大写锁定重新映射到控件
您可以将 caps lock 键重新映射到键盘设置中的 control 键(单击 Modifier Keys
按钮)。
在 vim 中,esc 的别名是 control-[,这比使用 esc 键。
在 Vim 中重新映射 Caps Lock 以转义
导航到主文件夹下的Library/Preferences/ByHost
目录
cd ~/Library/Preferences/ByHost
识别隐藏的属性列表文件
ls -a | grep Global
将其分配给一个shell变量,以便以后引用
pfile=$(ls -a | grep Global)
确保新创建的变量pfile
具有正确的值。它应该看起来像这样:.GlobalPreferences.7D7C488E-0E83-5562-B58B-011C540890F3.plist
echo $pfile
进行备份以防万一出现严重错误
cp $pfile,.bak
将pfile复制到主目录并转换为xml
cp $pfile ~/keys-binary.plist
plutil -convert xml1 -o ~/keys-xml.plist ~/keys-binary.plist
打开文件并搜索文本HIDKeyboardModifierMappingSrc
和HIDKeyboardModifierMappingDst
。将HIDKeyboardModifierMappingDst
下integer
标签之间的值设置为5,HIDKeyboardModifierMappingSrc
下设置为0,如下所示。
<key>com.apple.keyboard.modifiermapping.1452-588-0</key>
<array>
<dict>
<key>HIDKeyboardModifierMappingDst</key>
<integer>5</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>0</integer>
</dict>
</array>
保存,然后转换回二进制文件
plutil -convert binary1 -o ~/keys-binary.plist ~/keys-xml.plist
最后,将此文件复制回ByHost
目录,替换掉原来的文件。
您需要在更改生效之前退出并重新登录。重新登录后,将以下行添加到您的 .vimrc
:
noremap <Esc>Op <Esc>
noremap! <Esc>Op <Esc>
如果您在终端中打开 vim,这将起作用。如果您使用的是 gvim,请尝试 Solution 2 by eelco,我在撰写这篇文章时引用了它,并使用了几个不同的映射使其在终端中工作。
另请注意,要使其正常工作,必须选中终端首选项中的允许 VT100 应用程序键盘模式选项。
【讨论】:
这对大多数人来说是一个不错的选择,但我右手小指和无名指的掌骨已经折断并且无法正常愈合。我试图限制它们的使用,并且 escape 很容易成为 vim 中除了空间之外最常用的键。我最初应该更努力地搜索并找到这个:***.com/questions/30308192/… 哇!这正是我想做的!我很感激你为此付出的努力!完美运行!以上是关于如何在不使用第三方程序的情况下重新映射我的 OSX 键盘?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不重新加载页面的情况下重新启动 Angular 应用程序?
如何在不使用第三方的情况下以编程方式从 Chase 下载我的银行交易?
如何在不使用数据库的情况下重新实例化动态 ASP.NET 用户控件?