Macos键位配置
看到一篇不错的文章 ,保存一下。
但你知道macOS也能使用类似Bash上用的快捷键来操作文本么😃,甚至还能自定义。 别光被标题的Emacs吓到,操作极为舒适,特别在你交换Control(⌃)与Caps Lock(⇪)键之后。
自带组合
其实快捷键列表这东西有好多途径可以获得
- 官方文档 https://support.apple.com/zh-cn/HT201236
- 知乎问题 https://www.zhihu.com/question/20021861
- CMD软件 https://www.mediaatelier.com/CheatSheet/
- 键盘贴膜 http://jcpal.com.cn/CN/ProductList23d0.html
这些快捷键是系统全局可用的,这就是macOS相比Windows的一大优势, 只要快捷键没有被覆盖,那么在各个软件可输入文字的地方都可以使用。
官方文档里其实已经很全面了,不过眼尖的用户可能会注意到 文稿快捷键
一节有一些 Control
开头的操作, 没错 他们就是本文的重点啦,Emacs快捷键。
这里把它们中一些常用的抽出来方便阅读:
key | 描述 |
---|---|
Ctrl + f | 向前移动一个字符 |
Ctrl + b | 向后移动一个字符 |
Ctrl + a | 移至行或段落的开头 |
Ctrl + e | 移至行或段落的末尾 |
Ctrl + p | 上移一行 |
Ctrl + n | 下移一行 |
Ctrl + d | 删除插入点右边的字符。也可以使用 Fn-Delete |
Ctrl + h | 删除插入点左边的字符。也可以使用 Delete 键 |
Ctrl + k | 删除插入点与行或段落末尾处之间的文本 |
Ctrl + o | 在插入点后新插入一行 |
不过由于是在浏览器中,可能会和其他快捷键冲突,列表中的不一定全都有效。 但你也可以打开一个文本编辑器(TextEdit.app)尝试尝试,这个肯定没问题。
终端组合
不论是Bash还是Zsh,你的常用终端也有不少自带的快捷键。
你可以在这些地方找到一些Cheatsheet
https://github.com/fliptheweb/bash-shortcuts-cheat-sheet https://kapeli.com/cheat_sheets/Bash_Shortcuts.docset/Contents/Resources/Documents/index 除了Shell自带的以外你还能通过 bind bindkey 添加自定义快捷键,这里不展开了。
可是似乎有点太多了,比如移动光标这个简单的操作就有那么多。Bash中移动光标的操作 Bash中移动光标的操作
key | 描述 |
---|---|
Ctrl + f | 向前移动一个字符 |
Ctrl + b | 向后移动一个字符 |
Ctrl + a | 移至行或段落的开头 |
Ctrl + e | 移至行或段落的末尾 |
Ctrl + d | 删除插入点右边的字符 |
Ctrl + h | 删除插入点左边的字符 |
Ctrl + u | 删除到行首 |
Ctrl + k | 删除到行尾 |
Alt + b | 向前移动一个单词 |
Alt + f | 向后移动一个单词 |
Ctrl + w | 向前删除到词首 |
Alt + d | 向后删除到词尾 |
Ctrl + y | 把之前删除掉的文本粘贴回来 |
这里我把和macOS自带对快捷键一致的命令用粗体标示出来了。
可以看到有不少相似点,比如他们都是使用 Ctrl + a
移动到行首。
但是也增加了一些新的常用操作,比如Alt + b
移动到单词边界,这对命令编辑很有帮助。
自定义组合
但能不能更强一点! 当然能!比如把他们俩结合起来,让全系统都能拥有流畅的文本编辑体验。
基本做法就几步
- 创建或打开
~/Library/KeyBindings/DefaultKeyBinding.dict
- 文件贴入 https://github.com/ttscoff/KeyBindings/blob/master/DefaultKeyBinding.dict 的内容
- 修改里面的内容以符合自己的需求
- 修改会生效在重启或新开应用上 这里我给出一个我自己的配置,包含如下功能
key | 描述 |
---|---|
Ctrl + f | 向前移动一个字符 |
Ctrl + b | 向后移动一个字符 |
Ctrl + a | 移至行或段落的开头 |
Ctrl + e | 移至行或段落的末尾 |
Ctrl + Shift⇧ + a | 选择到行或段落的开头 |
Ctrl + Shift⇧ + e | 选择到行或段落的末尾 |
Ctrl + p | 移动到上一行 |
Ctrl + n | 移动到下一行 |
Ctrl + d | 删除插入点右边的字符 |
Ctrl + h | 删除插入点左边的字符 |
Ctrl + u | 删除插入点与行或段落开头处之间的文本 |
Ctrl + k | 删除插入点与行或段落末尾处之间的文本 |
Ctrl + o | 在插入点后新插入一行 |
Option⌥ + o | 在下面开启新的一行 |
Option⌥ + Shift⇧ + o | 在上面开启新的一行 |
Command⌘ + Enter↵ | 在下面开启新的一行 |
Command⌘ + Shift⇧ + Enter↵ | 在上面开启新的一行 |
Ctrl + w | 向前删除到词首 |
Option⌥ + d | 向后删除到词尾 |
Option⌥ + y | 拷贝一行或一段 |
Ctrl + y | 把之前删除掉的文本粘贴回来 |
Option⌥ + w | 选择一个单词 |
Option⌥ + s | 选择一整个行或段落 |
Option⌥ + 1 | 设置一个标记 |
Option⌥ + 2 | 跳转到这个标记 |
交换按键
Mac键盘,或者说几乎所有键盘布局,都把Ctrl(Control)键放置在了左下角。 当然还有一些笔记本会让Fn键占据左下角的位置,把Ctrl挤开。 个人极力吐槽这种配置,不能盲按。
不过在我把Ctrl和CapsLock键交换位置以后,世界变了🤯
小拇指按Ctrl键的体验比左手掌侧面按的体验好太多了!
那么大个CapsLock键却不怎么使用(除了在Mac上切换中英文输入法)简直是浪费。