MacOS 的 Emacs 风格键盘快捷键
众所周知,MacOS有一组键盘快捷键,其中常用方向键控制Web 表单、输入框、纯文本文档等文本字段的编辑。但似乎不太为人所知的是,MacOS还原生支持某些 Emacs 键盘快捷键。
译自: (Emacs) Keyboard Shortcuts for Editing Text Fields in OS X
by JASON BLEVINS (JULY 17, 2015)
众所周知,MacOS 有一组键盘快捷键,其中常用方向键控制Web 表单、输入框、纯文本文档等文本字段的编辑。举个例子, ⌘←将光标移动到当前行的开头。
尽管它们在官方的文档中有提及(Mac 键盘快捷键),但似乎不太为人所知的是, MacOS 还原生支持某些 Emacs 键盘快捷键。 例如,要移动到当前行的开头或结尾,可以按 ⌃A 或 ⌃E。 要删除光标后当前行上的所有内容,请使用 ⌃K。 要调换光标左右两侧的字符的位置,请按 ⌃T。 要在当前行上居中视口,请按 ⌃L。 像这样的快捷用法比使用方向键更快,后者需要将手指从键盘的主行移开。
下表比较了 Emacs 按键绑定与 MacOS 按键绑定(类似 Emacs 的子集)。 对于 MacOS 快捷键,我们使用常用符号来表示 Command ⌘、Shift ⇧、Option ⌥、Control ⌃、Caps Lock ⇪、Delete ⌫ 和 Function Fn 键,并且将所有字母用大写表示。
Emacs 按键绑定以 Control C、Meta (Alt) M、Shift S 前缀和 Delete DEL 键,并且将所有字母用小写表示。
Emacs 和 MacOS 键盘快捷键对比
对象 | 方向 | Emacs | MacOS | |
---|---|---|---|---|
光标移动: 移动光标 by character, word, line, etc. | ||||
char | left | C-b | ⌃B | ← |
right | C-f | ⌃F | → | |
word | left | M-b | ⌃⌥B | ⌥← |
right | M-f | ⌃⌥F | ⌥→ | |
line | begin | C-a | ⌃A | ⌘← |
end | C-e | ⌃E | ⌘→ | |
up | C-p | ⌃P | ↑ | |
down | C-n | ⌃N | ↓ | |
doc | begin | M-< | ⌘↑ | |
end | M-> | ⌘↓ | ||
文本选中: 扩展选中文本 by character, word, paragraph, and line | ||||
char | left | C-b | ⌃⇧B | ⇧← |
right | C-f | ⌃⇧F | ⇧→ | |
word | left | M-b | ⌃⌥⇧B | ⌥⇧← |
right | M-f | ⌃⌥⇧F | ⌥⇧→ | |
line | begin | C-a | ⌃⇧A | ⇧⌘← |
end | C-e | ⌃⇧E | ⇧⌘→ | |
up | C-p | ⌃⇧P | ⇧↑ | |
down | C-n | ⌃⇧N | ⇧↓ | |
文本删除: 移除 characters, words, and lines | ||||
char | left | C-h, DEL | ⌃H | ⌫ |
right | C-d | ⌃D | ||
word | left | M-DEL | ⌥⌫ | |
right | M-d | Fn+⌥⌫ | ||
line | backwards | C–0 C-k | ⌘⌫ | |
forwards | C-k | ⌃K | ||
搜索: 查找文本和在结果间移动 | ||||
result | first | C-s | ⌘F | |
next | C-s | ⌘G | ||
previous | C-r | ⇧⌘G | ||
滚动: 滚动编辑窗口 | ||||
page | up | M-v | Fn+↑ | |
down | C-v | ⌃V | Fn+↓ | |
recenter | C-l | ⌃L | ||
杂项: 其他的插入、编辑等操作 | ||||
char | transpose | C-t | ⌃T | |
line | insert | C-o | ⌃O | |
kill | C-w | ⌃K | ||
yank | C-y | ⌃Y |
参考:
- Text System Defaults and Key Bindings from the Cocoa Event Handling Guide in the Mac Developer Library.
- Additional Emacs keyboard shortcuts via a
DefaultKeyBinding.dict
file on GitHub that can be placed in~/Library/KeyBindings
.
最后修改于 2022-05-09