macOS Efficiency: 关于「如何高效使用 Mac」的个人见解.
君子生非异也, 善假于物也. —— 荀子
如何高效地使用 Mac? 本文的拙见仅供参考.
- 本文仅列举一部分快捷键, 只为引述观点.
- 默认都是 macOS 上使用的快捷键, 除非有额外说明.
- 笔者一开始也是 Windows 用户, 所以会提及 Windows 和 macOS 之间的一些差异对比.
- 本文 鼠标 包括 trackpad 触控板 的含义 ( Mac 通常使用后者 ) .
原来不习惯使用快捷键的用户绝对要尝试使用, 用惯 Windows 后刚转到 macOS 的用户也不要惧怕重新学习和适应新的快捷键. 只要熟悉少数基本的快捷键, 操作效率就能显著提升. 虽然可能一开始觉得困难, 但是值得付出这些学习成本.
对极端的键盘党说: 对快捷键再熟悉, 也必然会碰到键盘难以完成的操作. 不要试图用键盘完全取代鼠标, 毕竟存在必须使用鼠标的场合. 即使想要这么做, 暂时也没有足够好的解决方案, 而且也没必要这样做. 鼠标操作更自由、精微, 符合直觉, 几乎没有学习成本 ( 对数字时代的原住民来说 ) .
题外话: 快捷键用上瘾之后, 可能恨不得连触控板都不用了 ( 走火入魔 ) . 笔者就曾试图用键盘完全取代鼠标, 感觉并不好. 一些 Apps 凭借还算巧妙的方式 ( 如, 四象限法 ) 让用户可以用键盘操作鼠标, 但是这些方案基本都难以适应和熟练, 还不如直接用鼠标操作. 而且用完全用键盘取代鼠标操作, 会导致手指的操作压力陡增, 手指手腕更容易疲劳疼痛.
首先熟悉常用的通用性强的系统快捷键.
绝大多数第三方 Apps 都会遵循系统快捷键的设计逻辑和排布规律, 复用其中大多数常见的相关快捷键组合, 以降低学习成本, 方便用户更快上手新的快捷键.
然后熟悉常用 Apps 的常用快捷键.
一般来说, 日常高频使用的 Apps 没几个, 根据二八法则, 只学习最常用的 20% Apps 中的最常用的 20% 快捷键, 就能以较低的学习成本显著提升操作效率.
如果想要继续进阶, 可以修改键盘的键位, 使用更强大和专业的 Apps.
修改 ( 你认为 ) 不合理的键盘键位. 例如, 笔者就认为「大写锁定」功能不值得占据 ⇪ 这个如此好按的键位. 不但因为中文使用者不常输入大写字母, 基本用不着 ⇪, 连不少英文母语者也会去修改这个键位.
可能你适应了新键位之后, 用别人的设备或者别人用你的设备会产生不便. 但想一想, 是不是绝大多数时候你都在使用自己的设备, 所以为了提升效率牺牲一些通用性是值得的!
增强系统功能的 Apps, 可以防止 Mac 睡眠、调整窗口布局、截图录屏、科学上网、隐藏菜单栏无用的图标等, 总有一款能解决你的痛点. 专业领域的 Apps 可以高效处理相关领域的问题.
键位符号
: Power⌘
: Command ( Cmd ) = Window Windows⌥
: Option = Alt Windows^
: Control ( Ctrl )⇧
: Shift ( Shf )⇪
: CapsLock 大小写切换⇥
: Tab⎋
: Escape ( Esc )↩
: Return ( Ret ) = Enter 回车 Windows凵
: Space 空格↑
↓
←
→
: Up, Down, Left, Right 方向键⌫
: Delete ( Del ) = Backspace 删除/退格 WindowsNum
: Digits 0 ~ 9
写法说明
^ a
=Ctrl + a
⌘ a
|⌘ b
= Command + a 或 Command + b⎋
,b
= 先按⎋
再按b
参考: Apple 官方文档《 Mac 键盘快捷键 》
最高频的操作: 撤销、剪切、复制、粘贴
- macOS :
⌘ z
⌘ x
⌘ c
⌘ v
- Windows :
^ z
^ x
^ c
^ v
刚从 Windows 切换到 macOS 时会不适应. 习惯之后就会发现:
⌘
在空格旁边, 离大拇指很近, ⌘
相关的组合快捷键其实比 ^
的敲起来舒服多了
重做: ⇧ ⌘ Z
重做上一个被 ⌘ z
撤销的操作; Windows 上则是 ^ y
- 当快捷键用多了, 会习惯猜测一个操作对应的快捷键组合额外加上
⇧
后, 就能触发相反的操作 - 正如上文的
⇧ ⌘ Z
之于⌘ z
, 又如⇧ ⌘ ⇥
之于⌘ ⇥
( 即「正向/反向切换 Apps」 )
所以说这里 macOS「重做」快捷键的设置更合理
相关快捷键之间有关联, 它们的排布遵循一定的内在逻辑
好设计能促进用户对「某一操作该对应哪个快捷键组合」产生一种直觉
- 用户可以籍此更容易猜出想要的快捷键在哪, 大大减轻记忆快捷键的负担
- 比如, 上述的「快捷键组合加
⇧
能触发反向操作」的规律
一个操作所用的快捷键组合, 通常跟该操作的英语表述相关
快捷键组合所用的字母键, 通常是该操作对应单词的其中一个字母, 通常是首字母
- 比如, 以上
⌘ c
的 c 即 copy
有时操作的快捷键之间可能没有关联
- 只是因为相关的快捷键组合已经被其它更常用的操作占据了!
这时就需要使用「联想」去记忆快捷键了
⌘ x
的 x 像剪刀, 也能跟 cut 扯上关系⌘ v
的 v 跟 paste 就没有明显的关联, 你仍然可以将 v 联想成插入内容的标识- 或者说它代表 verbatim ( 逐字的、一字不差的 )
为什么撤销、剪切、复制、粘贴的快捷键对应 zxcv 等键位?
- 最显而易见的原因: zxv 离 c ( copy ) 很近, 这些操作互有关联, 适合放到一起
- 而且也靠近
⌘
、^
等功能键, 这样的键位组合, 敲起来更方便
⌘ b
: 加粗⌘ i
: 斜体⌘ u
: 下划线⌘ =
/⌘ -
: 放大/缩小字体 ( 或界面的显示 ) ……
选中
- 按住
⇧
不放, 再按方向键↑
、↓
、←
或→
可以选中一段文本
删除
Fn ⌫
: 后向删除字符, 跟⌫
前向删除相反⌥ ⌫
: 前向删除一个 ( 中英 ) 单词 ( 或字符串 ) , 当然也有对应的Fn ⌥ ⌫
后向操作- 注意 macOS 对中文单词的判定并不总能合乎你的期待
Emacs
注意: macOS 的文本编辑控件内置了一些 Emacs 快捷键! 如下
- 跳转:
^ a
= Windows 的Home
;^ e
=End
- 删除:
^ k
删除光标当前位置至行尾处的字符串 - 退格:
^ h
=⌫
- 左右上下:
^ b
=←
,^ f
=→
,^ p
=↑
,^ n
=↓
移动、删除、预览、打开、向上、查看文件属性
如果你先养成了 Windows 的使用习惯, 可能会不适应 macOS Finder ( 文件管理器 ) 对「移动文件」操作的思路
- 在 Windows 先用
^ x
剪切, 再用^ v
粘贴 - 而 macOS 则先用
⌘ c
"复制" 目标文件, 再在目标目录下用⌥ ⌘ v
"粘贴" , 此时文件「移动」成功
解释
- 先用
⌘ c
并非表示这一定是「复制」的操作, 也可能是「移动」- 具体是哪一种操作, 取决于后续用哪个快捷键
- 如果用 ⌘ v 即是「复制、粘贴」, ⌥ ⌘ v 则是「剪切、粘贴」即「移动」
- 你会发现这两个快捷键也是关联的, 不难记
剪切文本
- 还是使用
⌘ x
剪贴板历史
- 剪切后用
⌥ ⌘ v
会显示最近的剪切复制的文本历史, 可以选择其中一个进行粘贴
删除
⌘ ⌫
, 只是进入废纸篓- 完全删除需要
⇧ ⌘ ⌫
清空废纸篓 - 进阶: 如需直接删除, 可以用命令行执行 rm 删除命令.
预览
- 选中文件, 然后按空格键
凵
即可便捷地预览内容- 这样一般情况下就用不着专门启动一个 App 来查看文件了, 除非需要修改
- 配合 预览插件 效果更佳
打开
- Windows 上用户会习惯用
↩
来打开文件、文件夹 - 然而
↩
在 macOS Finder 中用于重命名文件和文件夹,⌘ ↓
才是「打开」操作
向上
- 即跳转到上一层目录
⌘ ↑
查看文件属性
⌘ i
打开「文件属性」的信息窗口, 此时可以修改这类文件默认使用什么 App 打开 ( 即打开方式 ) , 修改或获取该 App 的图标等
显示隐藏文件和文件夹
⇧ ⌘ .
以下操作不常用/非必需
文件复制
- macOS 用
⌘ d
即「制作副本」, 等于在同一目录下先用⌘ c
再用⌘ v
制作「替身」
- 你可能会将一些文件复制多份, 然后放在不同地方, 可能是为了便于访问
- 但是除非为了备份, 否则这么做会令你难以对其进行有效的「控制版本」
- 还不如用
⌘ l
为其制作一个「alias 替身」, 将其放到其它地方, 例如桌面 - 「替身」用程序员的话来说, 就是指向源文件的「指针」或者「软连接」
- 打开替身等于打开了原始文件, 而删除「替身」不会影响到原始文件.
- 还不如用
设置
⌘ ,
: 基本所有的 Apps 都用它来打开设置选项
窗口
^ ⌘ f
最大化⌘ h
隐藏 ( 相比之下⌘ m
最小化就显得鸡肋了 )⌥ ⌘ h
隐藏当前窗口之外的所有窗口, 很好用
浏览器 / Finder
⌘ [
前进⌘ ]
后退
输入法
^ 凵
切换输入法- 注意系统自带输入法是用方括号 [ 和 ] 进行候选字前后翻页的, 而非通常的 , 逗号和 . 句号.
关机
- 记住
^
关机就够用了 - 还有
^ ⇧
是屏幕睡眠 ⌥ ⌘
则是 ( 硬盘 ) 睡眠
Spotlight
- 习惯使用
⌘ 凵
进行全局搜索, 就不用总是打开 Finder 和 LaunchPad 来找文件和 Apps 了
功能键
- 即键盘最顶上的一排按钮 ( 2016 年底新款 MacBook Pro 取消这排实体按键 )
- 控制「屏幕亮度、音量、音乐播放」等按键较常用
- 「任务控制 ( F3 处 ) 、LaunchPad ( F4 处 ) 」等可以由触摸板的手势「三指上划、拇指加另外三指内划」来代替 ( 详见 系统设置 → 触摸板 处 )
没想起来的快捷键, 一般也都不太重要, 在此略过
在 系统设置 → 键盘 → 快捷键 中可以修改很多 ( 不是全部 ) 系统默认的快捷键
- 主要是将一些你觉得不合理的快捷键组合改得顺手, 或者将用不上的快捷键去掉, 以免误触
- 特别是对某些快捷键组合已经形成根深蒂固习惯的人, 会记不住新的快捷键, 以致经常按错
其中左侧候选栏中的 应用快捷键, 可以用来重写所有应用或部分指定应用的其中一些快捷键
作为最最常用的 App, 最值得熟练使用快捷键以提升效率.
恢复 ( 重新打开 ) 最近关闭的标签页
⇧ ⌘ T
是很有用的快捷键- 特别是误关某些网页时, 可以快速重新打开, 不用去浏览历史找
页面刷新
⌘ r
- Windows 则是
F5
页面浏览
凵
向下滚动一页⇧ 凵
相反↑
↓
←
→
也可以小幅度滚动页面
访问历史
⌘ [
前进⌘ ]
后退⌘ y
或⇧ ⌘ H
浏览详情
切换标签页 ( Tab )
^ ⇥
下一个 ( 右 )^ ⇧ ⇥
上一个 ( 左 )⌘ 1~9
跳到第 1~9 个标签页- 如果一共超过 9 个标签页, ⌘ 9 则是跳转到最后一个标签页而非第 9 个
显示比例
⌘ =
放大⌘ -
缩小⌘ 0
恢复默认大小
收藏夹
⌘ d
添加到收藏夹⌥ ⌘ b
管理收藏夹
其它
⌘ ,
设置⇧ ⌘ H
主页- 其余略
Chrome + Vimium
配合拓展, 可在浏览器内使用 Vim 键位浏览网页、操作浏览器!
- 但这些拓展无法在页面未加载完毕的情况下使用, 不够极致
- FireFox + VimFX 能够浏览器内全局随时使用, 但新版 FireFox 的 VimFX 暂未恢复支持
- 只要入门其中常用的基本操作, 就能感觉到效率的大大提升. 能用一个指头按就不要用两个指头, 指头在越靠近键盘中心区的地方按就越省力
- Source Code : https://github.com/1995eaton/chromium-vim
默认的键位排布跟 Vim 有一定关联, 但不全有
- 熟悉 Vim 的话, 用起来会很顺手
- 还在学习 Vim 的话, 可以帮助你记忆 Vim 的键位
基本操作
f
在当前标签页打开链接,⇧ F
在新的标签页打开链接x
=⌘ w
关闭标签页,⇧ X
=⇧ ⌘ T
重新打开最近关闭的一个标签页j
下翻,k
上翻,⇧ H
=⌘ [
前进,⇧ L
=⌘ ]
后退⇧ J
=^ ⇧ ⇥
上一个标签页,⇧ K
=^ ⇥
下一个- 其它从略, 可以通过输入
:help
然后回车↩
, 查看各种操作的快捷键
例如
- 广告过滤器: uBlock
- 下载工具: Chrono Download Manager
- 标签页收纳管理: One Tab
- 网络代理: SwithyOmega 用于科学上网
- 帐号密码管理自动填充登录: 1Password
- 针对 Web 开发者: JSON Formatter、Postman ( API ) 、颜色识别、字体识别、量尺等工具, 不一而足
实际需要用到的插件并不多, 根据需求自行选择, 够用、适合自己就行, 尽量保持精简
提醒: 安装运行太多用处不大、用得不多的插件, 不但让浏览器变得更慢, 而且还更容易崩溃, 得不偿失!
程序员相关.
工具链推荐: Zsh + Vim + tmux + iTerm 2
可能在默认的配置下 Fish 使用起来比 Zsh 更好一点, 但是它对 Bash 的兼容性不够好, Bash 的脚本或指令组合不一定能在 Fish 上跑, 相反亦然, 影响通用性. Zsh 在这方面则基本没有问题. 综合各方面进行对比, 我认为 Zsh 暂时是各种 Shell 中最好的选择.
- 快速切换目录: 最常用最便捷的功能
- 直接输入目录的路径, 毋需添加
cd
指令, 即可切换到指定路径. - 输入不完整路径 ( 或者指令 ) 然后按
⇥
, 自动补全目录 ( 或指令 ) , 或者列出相似的候选项. - 输入
-
或1
命令切换到上一个目录,1
~9
用于回到之前第 n 个访问的目录.
- 直接输入目录的路径, 毋需添加
- Shell 内置的 Emacs 式快捷键 ( keybindings )
- 跳转:
^ a
光标移至行首,^ e
移至行末. - 删除:
^ u
删除光标当前位置至行首处的输入,^ k
相反, 即删除至行末;^ w
删除前一个单词,^ h
=⌫
删除前一个字符. - 移动光标:
⎋
,b
移动到上一个单词,⎋
,f
移动到下一个 (meta b
/meta f
for Bash ) . - 命令行历史:
↑
上一条命令,↓
下一条 (^ p
/^ n
也可以 ) . - 确认:
^ h
=↩
确认指令.
- 跳转:
- 命令别名 ( Aliases )
- 通常用来给常用命令指定一个「缩写」, 一遍更便捷地输入长的命令组合. 作为程序员, 我的手速、输入准确率都一般, 就特别喜欢输入缩写命令.
- 例如, 我让
gs
=git status
,gp
=git push
等 ( 见 Git Aliases ) .
- 例如, 我让
alias
命令, 列出所有的 aliases.
- 通常用来给常用命令指定一个「缩写」, 一遍更便捷地输入长的命令组合. 作为程序员, 我的手速、输入准确率都一般, 就特别喜欢输入缩写命令.
- Zsh 还有许多好东西, 在此暂略, 可以根据自己的需求, 自行查阅学习.
- 可以简单参阅我的 .zshrc 配置. 注意以上特性并不都是 Zsh 特有的, 详看 各种 Shell 的对比.
- 首先, 通用性有保证! 服务器没有 GUI 界面, 可能没有 Emacs, 但是基本不可能没有 Vi*, 学会 Vim 保证你在几乎任何服务器环境下都能无碍地编辑文本.
- 其次, 拓展广. 很多 IDE 和编辑器都有 Vim 插件, 不用记太多各个 Apps 专有的快捷键, 学会 Vim 就可以在其中进行绝大多数常用的文本编辑操作, 减轻记忆负担, 提升效率.
- 例如, Sublime Text 系列就自带 Vintage Mode 专门支持 Vim 键位的操作.
- 各种 Shell ( 命令行 ) 除了自带 Emacs 式的快捷键, 其实也有 Vim 式的快捷键, 可以尝试一下, 看看自己习不习惯.
- 我的配置 .vimrc
tmux : 终端多路复用软件, 即命令行中的「窗口管理」、「分屏工具」.
- 允许一个用户在一个终端窗口或一个远程终端会话中, 使用多个终端会话.
- tmux 是由 screen 发展而来的, 其中许多命令都是共有的. screen 虽不如后来者 tmux 易用、强大、美观, 但是更通用 —— 大多数服务器都有 screen 命令.
- 我的配置 .tmux.conf
iTerm2 : 功能和可配置性, 比系统自带的终端 Terminal 强大许多.
- 对命令行的使用环境要求不高的话, 用 Terminal 也没差, 只要适合自己, 够用就好.
- 其它选择: VS Code, 自带终端 ( Terminal ) , 新一代轻量文本编辑器的佼佼者.
Karabiner-Elements 改变键盘的键位
- 我将
⇪
改成^
, 这样的话, 按下由^
、⌘
组合而成的快捷键会顺手很多. - 原来的
^
, 用于一键触发^ 凵
以便一键切换输入法.- 用专用的单键
^
比用⇧
或⇪
来切换输入法, 更不容易影响正常的操作. 特别是用 Vim 输入中文时, 因为 Vim 有太多跟⇧
相关的操作. 后来我为了 Vim 更进一步: 只要在中文输入法状态下, 按⎋
或⇧
, 就会自动切换回英文输入法. - 我用右手掌小鱼际 ( 即靠近小指的部分手掌 ) 去按原来的
^
键位, 这样的话双手就基本不用远离键盘中心区了 ( 参考盲打键盘的标准姿势 ) .
- 用专用的单键
- 我从键盘上移除了专门单个键的
⇪
CapsLock 大写锁定键 ( 改用Fn + u
=⇪
)- 因为很少用到, Vim 党可以先以小写写完, 再用
U
指令全部改写为大写, 大不了全用⇧
来输入大写字母.
- 因为很少用到, Vim 党可以先以小写写完, 再用
- 我的配置 karabiner.json
Reference: AppleScript - Apple Developer
系统内置的可用于操作 macOS 以及 Apps 的脚本语言. 能实现许多功能在此暂不赘述.
- 其实一般情况下, 用户都没必要折腾, 你能想到需求通常都存在相关的 App 帮你解决.
- 但如果你懂 AppleScript 的话, 就可以便捷地实现许多简单实用的功能.
- 例如, 快速查询本机 IP 地址并保存到剪贴板; 又如, 将剪贴板的内容通过邮件或 iMessages 的方式快速发送给指定联系人, 发给自己的话, 就可以将需要的内容从 Mac 发到自己的 iPhone 了.
- 因为许多软件都支持 AppleScript, 可被其调用和操作, 而且通常也不会缺少相关的说明文档 ( Dictionary 字典 ) .
- 基础用法: 用 AppleScript 写好脚本, 然后保存为 Application, 就可以用点击打开、Spotlight 搜索、快捷键等各种方式来便捷地调用它, 以实现自己的功能.
- 进阶用法: Keyboard Maestro、Alfred 等的许多效率类软件不但能被 AppleScript 调用和操作, 他们也能调用 AppleScript. 所以它作为一种胶水语言, 可以与其它 Apps 甚至命令行的命令、脚本进行组合, 产生进阶的功能, 实现一些 Apps 原来并没有的新功能, 以满足自身的需求.
- 可以参考: 《AppleScript Language Guide》官方文档 《用 AppleScript 操作 Evernote / macOS》 《AppleScript Quick Start 快速入门》
Shell、CLI : Bash 脚本、命令行, 都是程序员的基本功, 就不赘述了
接下来列举的一些其它 Apps, 它们大大地提升我的效率, 所以推荐您去了解和尝试
Time Machine Required
- macOS 自带的系统备份、恢复软件. 要有忧患意识, 不要等硬盘坏了、Mac 丢了, 才追悔莫及
- 快捷键快速提醒. 长按 Command 键, 显示当前程序的快捷键列表, 方便快速入门 Mac 各处的快捷键 ( 新手专用 )
Keyboard Maestro Best
- 高度自定义的效率工具, 加速常用操作, 甚至自动化. 功能强大, 用途甚广, 限制你的只有你的想象力
- 可以参考笔者的对其用法的简要介绍 (
tools.md已删除) 或《Keyboard Maestro 入门指南》
ClipMenu Simple
- 剪贴板管理. 主要用于快速查询剪贴板的历史记录, 并提取出需要的内容保存到当前的剪贴板中
- 相关 Apps 层出不穷, 根据自身需求进行选择, 我偏爱轻便简单的 ClipMenu
- 稳定切换同一 App 下各子窗口
- 防止 Mac 休眠. Mac 每次休眠后都会重启软件, 导致软件丢失部分上下文, 于是我无法在完全一样的环境下持续工作, 一定程度上打断了工作, 降低了效率
- 收起或彻底隐藏毋需过多关注的菜单栏 App 图标.