当前位置:  开发笔记 > 前端 > 正文

在Mac OS X中使用Caps Lock作为Esc

如何解决《在MacOSX中使用CapsLock作为Esc》经验,为你挑选了9个好方法。

如何在Mac OS X中进行Caps Lock工作Esc



1> cwd..:

编辑:正如在描述这个答案,MacOS的较新版本现在有重新绑定原生支持Caps LockEscape.因此,不再需要安装第三方软件来实现此目的.


这是我尝试使用Seil(以前称为PCKeyboardHack)实现此目的的全面,直观的回答(链接).

    首先,进入系统偏好设置,选择键盘,然后选择键盘选项卡(第一个选项卡),然后单击修改键:

步骤1

在弹出的对话框中,将Caps Lock Key设置为No Action:

选择不采取行动

2)现在,点击这里下载Seil并安装它:

3)安装完成后,您将安装一个新的应用程序(Mountain Lion和更新版本),如果您使用的是较旧的操作系统,则可能需要检查新的"系统偏好设置"窗格:

打开seil或首选项窗格

4)选中"更改大写锁定"框并输入"53"作为转义键的代码:

设置键盘代码

而且你已经完成了!如果它不能立即工作,您可能需要重新启动计算机.

印象深刻?想要更多控制?

您可能还想查看KeyRemap4MacBook,它实际上是旗舰键盘重映射工具pqrs.org- 它也是免费的.

如果你喜欢这些工具,你可以捐款.我与他们没有任何关系,但我已经使用这些工具很长一段时间了,不得不说那边的人一直在做这些工作,添加功能和修复bug.

这是一个屏幕截图,显示了一些(数百个)预选选项:

图片1.png

PQRS还有一个名为NoEjectDelay的实用程序,您可以将其与KeyRemap4MacBook结合使用,以重新编程Eject键.稍作调整之后我就开始拨打AirPort Wifi.

重新映射Mac键盘时,这些实用程序提供无限的灵活性.玩得开心!


请注意,如果使用外部键盘,则应为每个键盘重复步骤1(即大写锁定=无操作).我没有为我的外部键盘执行此步骤,因此,由于意外的大写锁定保护,大写锁定没有响应非常快速的按键操作.http://superuser.com/questions/317900/eliminate-macbook-capslock-delay
很棒的教程.我将Caps Lock映射到Esc大约一年.它非常有效率.然而,有一天,我与一位资深开发人员配对.我告诉他我用Vim作为主编.我也是,他说.他打开机器,我们开始工作了.当轮到我编辑代码时,我摸索着绊倒了,因为他的Caps Lock没有被映射.我一直试图一直到Esc,但是我每隔一段时间就会遇到一次,然后我的正常命令就会改变.他告诉我,Ctrl-c也会让你回到可视模式.**帮自己一个忙,然后开始使用Ctrl-c.**
(每天学习更多)`CTRL- [`实际上是与ESC相当的.http://stackoverflow.com/questions/5030164/whats-the-difference-between-ctrlc-and-ctrl/5036294#5036294
如果您还可以在顶部编辑并提及现在这是@ rkusa的答案中macOS 10.12.1中的本机功能,那将是很棒的,这样新用户就不必去下载第三方软件
我想澄清一下,我已经使用PCKeyboardHack单独_without_ KeyRemap4Macbook将近2年才能做到这一点.
**PCKeyboardHack已更名为Seil:**https://pqrs.org/macosx/keyremap4macbook/seil.html.en
不幸的是,这不再适用于OS X 10.10 Yosemite.
我如何_swap_键?那就是让Esc作为Capslock工作?
对于因链接不起作用而感到困惑的人,seil已被弃用为karabiner元素,链接在这里https://pqrs.org/osx/karabiner/

2> rkusa..:

从macOS 10.12.1开始,可以重新映射Caps LockEsc本机(系统首选项 - >键盘 - >修改键).

在此输入图像描述


真棒!听到新MBP没有逃生钥匙后,我发现了这一点.看起来Apple预计会有一些反弹.
奇怪的是,我在10.11.6并且没有这个选项.我只允许将esc重新映射到大写,ctrl,opt或命令.这适用于我的WASD键盘v2.

3> 小智..:

这是可能的.

解决方案1

从一个arcticle上TrueAffection.net.

下载PCKeyboardHack并安装它.

转到系统偏好设置中的PCKeyboardHack.

启用"更改大写锁定"并将键码设置为53.

解决方案2

此解决方案不涉及修补键盘驱动程序,但为您提供Vim特定的解决方案.

OS X支持将Caps Lock键映射到一大堆键,但您必须"手动",编辑.plist文件.本文描述了该过程.作为该提示的补充,我建议您首先在系统偏好设置中将Caps-Lock设置为无,然后您只需要更改.plist文件中的一个值.此外,您当然可以使用属性列表编辑器,而不是通过XML转换步骤.

诀窍是将Caps Lock键映射到帮助键(代码6),这不在大多数键盘上.但如果它是,它将被视为插入键,你可能不会使用它,因为你要求重新映射你的大写锁定以防止伸出你的手;)

然后,您可以将帮助和Insert密钥映射到Escvim中.

map   
map!  
map   
map!  

这适用于gvim(Vim.app).我没有让它与终端中的vim一起工作,我没有用MacVim测试它.

因此,它是一个复杂的,半生不熟的解决方案或安装第三方hackery.你的选择;)

编辑:刚刚注意到解决方案3,如果您正在使用MacVim,您可以使用Ctrl,OptionCommand作为Esc.使用"系统偏好设置",将Caps Lock映射到其中一个键非常简单.


您提到的暗示在哪里?
Maletor - theres没有在那里告诉macvim使用控制作为逃脱

4> neurosnap..:

现在使用macOS Sierra 映射Caps Lock密钥要容易得多Esc.

    打开系统首选项→键盘.

    单击右下角的"修改键"按钮.

    单击要重新映射的硬件密钥旁边的下拉框,然后选择Escape.

    单击确定并关闭系统偏好设置.

在此输入图像描述

https://9to5mac.com/2016/10/25/remap-escape-key-action-macbook-pro-macos-sierra-10-12-1-modifier-keys/



5> wim..:

我对这里的任何答案都不满意,并寻找命令行解决方案.

在macOS Sierra 10.12中,Apple为用户重新映射密钥引入了一种新方法.

无需摆弄系统GUI

无需特殊权限

完全可定制

无需安装任何第三方垃圾,如PCKeyboardHack/Seil/Karabiner/KeyRemap4MacBook/DoubleCommand/NoEjectDelay

如果这听起来不错,请看一下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


+!这是在macOS上重新映射密钥的现代正确方法
Karabiner的[重复密钥的问题](https://github.com/tekezo/Karabiner-Elements/issues/545)使我寻找密钥重映射的本机解决方案.这篇文章和[另一个在apple.stackexchange.com](https://apple.stackexchange.com/questions/283252/how-do-i-remap-a-key-in-macos-sierra-eg-right-alt对权利控制有很大帮助.

6> EfForEffort..:

我知道该怎么做才能将Caps Lock映射到Control,或Option或Command.这可以通过"系统偏好设置"的"键盘和鼠标"面板完成.单击左下方的"修改键",您将能够将大写锁定,控制,选项和命令重新映射到其中任何一个.

@Craig:这表明Caps Lock 可以用作普通键 - 即非切换键.在我的MacBook上,由于我已将Caps Lock重新映射到Control,因此Caps Lock指示灯从不亮起.它只是像Control键一样.

在此输入图像描述


漂亮的图片在这里:http://stackoverflow.com/questions/162896/emacs-on-mac-os-x-leopard-key-bindings#162907

7> Michael Glas..:

在macOS Sierra(10.12测试版)上尚未提供Seil.因此,我一直在使用Keyboard Maestro这些设置:在此输入图像描述

感谢这个github评论:https://github.com/tekezo/Seil/issues/68#issuecomment-230131664


我正在使用https://github.com/tekezo/Karabiner-Elements(适用于Sierra).到目前为止工作得很好,虽然我希望它"Control_L到Control_L(+当你输入Control_L时,发送Escape)"

8> Zxaos..:

尝试过这些解决方案后,我有一些注意事项:

DoubleCommand会不会让你掉ESC和大写锁定.

PCKeyboardHack 允许您映射封锁以逃脱,但是没有能力将escape映射到capslock.最新版本允许您通过编辑两个键来执行完整交换.

这可能会或可能不足以满足您的需求(我知道这是我的需要).



9> user2581875..:

如果您不想安装第三方应用程序并且您真的只关心iTerm中的vim,则以下工作:

重映射的CapsLock为描述帮助这里.

简短版本:使用plutil或类似编辑~/Library/Preferences/ByHost/.GlobalPreferences*.plist,它看起来应该类似于:

HIDKeyboardModifierMappingDst
6
HIDKeyboardModifierMappingSrc
0

重新开始!简单的注销和登录对我来说不起作用.

在iTerm中,为Help添加一个新的键映射:发送十六进制代码0x1b,它对应于Escape.

我知道这不是所要求的,但我认为很多人寻找这样的解决方案的意图实际上是这种更专业的变体.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有