Mac 效率指南

君子生非异也,善假于物也。

荀子

说明

  • 如何高效地使用 Mac?本文的拙见仅供参考。
    • 本文仅列举一部分快捷键,只为引述观点。
    • 默认都是 macOS 上使用的快捷键,除非有额外说明。
    • 笔者一开始也是 Windows 用户,所以会提及 Windows 和 macOS 之间的一些差异对比。
    • 本文 鼠标 包括 trackpad 触控板 的含义(Mac 通常使用后者)。
  • 相关博文
    • 利器 - 软硬件推荐》列举了绝大多数笔者用的 Apps 和硬件。
    • 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 Windows 删除/退格
    Num Digits: 0 ~ 9

  • 写法说明

    ^ a = Ctrl + a
    ⌘ a | ⌘ b = Command + a 或 Command + b
    ⎋, b = 先按 再按 b

macOS

参考 : Apple 官方文档《 Mac 键盘快捷键

默认

基本的 zxcv

剪切、复制、粘贴、撤销、重做

  • 撤销、剪切、复制、粘贴:最高频的操作,对应 ⌘ z⌘ x⌘ c⌘ v;Windows 上则是 ^ z^ x^ c^ v
    • 刚从 Windows 切换到 macOS 时会不适应。习惯之后就会发现 在空格旁边,离大拇指很近, 相关的组合快捷键其实比 ^ 的敲起来舒服多了。
  • 重做⌘ ⇧ Z 重做上一个被 ⌘ z 撤销的操作;Windows 上则是 ^ y
    • 当快捷键用多了,会习惯猜测一个操作对应的快捷键组合额外加上 后,就能触发相反的操作。正如上文的 ⌘ ⇧ Z 之于 ⌘ z ,又如 ⌘ ⇧ ⇥ 之于 ⌘ ⇥(即「正向/反向切换 Apps」),所以这里 macOS「重做」快捷键的设置更合理。
  • 好设计:「相关快捷键之间有关联,它们的排布遵循一定的内在逻辑。
    • 它能促进用户对「某一操作该对应哪个快捷键组合」产生一种直觉,用户可以籍此更容易猜出想要的快捷键在哪,大大减轻记忆快捷键的负担。
      • 比如,上述的「快捷键组合加 能触发反向操作」的规律。
    • 一个操作所用的快捷键组合,通常跟该操作的英语表述相关
      • 快捷键组合所用的字母键,通常是该操作对应单词的其中一个字母,通常是首字母。
        比如,以上 ⌘ cccopy
      • 有时操作的快捷键之间可能没有关联(只是因为相关的快捷键组合已经被其它更常用的操作占据了)。这时就需要则需要使用「联想」以便记忆快捷键了。
        比如, ⌘ xx 像剪刀,也能跟 cut 扯上关系;⌘ vvpaste 就没有明显的关联,你仍然可以将 v 联想成插入内容的标识,或者说它代表 verbatim(逐字的、一字不差的)。
      • 为什么撤销、剪切、复制、粘贴的快捷键对应 zxcv 等键位?最显而易见的原因 是「zxvc copy 很近,这些操作互有关联,适合放到一起」,而且也靠近 ^ 等功能键,这样的键位组合,敲起来更方便。

文本编辑

  • 基本:
    ⌘ b 加粗、⌘ i 斜体、⌘ u 下划线,⌘ = / ⌘ - 放大/缩小字体(或界面的显示)……
  • 进阶:
    • 选中
      • 按住 不放,再按方向键 可以选中一段文本。
    • 删除
      • Fn ⌫ 后向删除字符,跟 前向删除相反。
      • ⌥ ⌫ 前向删除一个(中英)单词(或字符串),当然也有对应的 Fn ⌥ ⌫ 后向操作。
        注意 macOS 对中文单词的判定并不总能合乎你的期待。
    • Emacs
      macOS 的文本编辑控件内置了一些 Emacs 快捷键。
      • 跳转:^ a = Windows 的 Home^ e = End
      • 删除:^ k 删除光标当前位置至行尾处的字符串。
      • 退格:^ h =
      • 左右上下:^ b = ^ f = 。、^ p = ^ n =

文件、目录

移动、删除、预览、打开、向上、查看文件属性

  • 文件移动:在 Windows 先用 ^ x 剪切,再用 ^ v 粘贴;而 macOS 则先用 ⌘ c “复制”目标文件,再在目标目录下用 ⌘ ⌥ v “粘贴”,此时文件「移动」成功!
    • 如果你先养成了 Windows 的使用习惯,可能会不适应 macOS Finder(文件管理器)对「移动文件」操作的思路。
    • 解释:先用 ⌘ 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 主页,略……

进阶 Vim 式插件

  • Chrome + cVim | Vimium
    • 配合拓展,可在浏览器内使用 Vim 键位浏览网页、操作浏览器!
      • 但这些拓展无法在页面未加载完毕的情况下使用,不够极致。(FireFox + VimFX 能够浏览器内全局随时使用,但新版 FireFox 的 VimFX 暂未恢复支持)。
    • 只要入门其中常用的基本操作,就能感觉到效率的大大提升。能用一个指头按就不要用两个指头,指头在越靠近键盘中心区的地方按就越省力。
      • 默认的键位排布跟 Vim 有一定关联,但不全有。熟悉 Vim 的话,用起来会很顺手;还在学习 Vim 的话,可以帮助你记忆 Vim 的键位。
    • 基本操作:
      • f 在当前标签页打开链接,⇧ F 在新的标签页打开链接;
      • x = ⌘ w 关闭标签页,⇧ X = ⌘ ⇧ T 重新打开最近关闭的一个标签页;
      • j 下翻,k 上翻,⇧ H = ⌘ [ 前进,⇧ L = ⌘ ] 后退;
      • ⇧ J = ^ ⇧ ⇥ 上一个标签页,⇧ K = ^ ⇥ 下一个;
      • 其它从略,可以通过输入 :help 然后回车 ,查看各种操作的快捷键。
    • cVim 比 Vimium 更强大,功能更丰富,拥有更多的配置选项,但需要编辑类似 .vimrc 的配置文件来进行配置,不够用户友好。

其它插件

  • 详见 我的 Chrome 插件
    • 广告过滤器(uBlock)、下载工具(Chrono Download Manager)、标签页收纳管理(One Tab)、网络代理(SwithyOmega 用于科学上网)、帐号密码管理自动填充登录(1Password)、网页剪藏(Evernote Web Clipper)和稍后读(Pocket)等……
    • 针对 Web 开发者还有 JSON Formatter、Postman(API)、颜色识别、字体识别、量尺等,不一而足。
  • 实际需要用到的插件并不多,根据需求自行选择,够用、适合自己就行,尽量保持精简。
  • 安装运行太多用处不大、用得不多的插件,不但让浏览器变得更慢,而且还更容易崩溃,得不偿失。

命令行

程序员相关。
工具链推荐:Zsh + Vim + tmux + iTerm 2

  • Zsh
    可能在默认的配置下 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 statusgp = git push 等(见 Git Aliases )。
      • alias 命令,列出所有的 aliases。
    • Zsh 还有许多好东西,在此暂略,可以根据自己的需求,自行查阅学习。
  • Vim(也可以选择 Neovim
    • 首先,通用性有保证!服务器没有 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 指令全部改写为大写,大不了全用 来输入大写字母。
    • 改成 ,左小指挪到键盘左上角的 略远
      • 改成这样的话,双手就基本不用远离键盘中心区了(参考盲打键盘的标准姿势),
      • 而且用强健的右大拇指去代替比较弱小的左小拇指去按 ,减轻长时间敲击键盘的手指不适。
      • 最重要的是从 2016 款开始 MacBook Pro 由于 Touch Bar 不再带实体的 ,Vim 使用者难以适应缺乏反馈的虚拟按键。
    • 我的配置 karabiner.json
  • AppleScript
    系统内置的可用于操作 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 快速入门
  • Automator
    可谓 macOS 的「按键精灵」。
    • 有时候用 JS、Shell、Python、AppleScript 写脚本来实现某些功能并不方便,比如关于 GUI 的一些任务,不如直接手动做。
    • 这时需要的若只是重复性的简单鼠标键盘操作,就可以用 Automator 直接录制键盘、鼠标的操作来重复运行,以减少重复的人工劳动。
  • Shell、CLI
    Bash 脚本、命令行,都是程序员的基本功,就不赘述了。

  • 接下来列举的一些其它 Apps,它们大大地提升我的效率,所以推荐您去了解和尝试。
    • 具体详见《利器 - 软硬件推荐》,其中列举了绝大多数笔者用的 Apps,包括简要的介绍和进一步的说明。
    • 选读《Mac 快捷键》列举了绝大多数笔者用的快捷键,仅供参考。
    • 因为以上两篇博文的部分内容与本文有交集,不打算重复赘述其中相同的内容,以下仅简单列举笔者推荐的 Apps 并附上一句话的介绍说明。
  • Time Machine Required
    macOS 自带的系统备份、恢复软件。要有忧患意识,不要等硬盘坏了、Mac 丢了,才追悔莫及。
  • CheatSheet
    快捷键快速提醒。长按 Command 键,显示当前程序的快捷键列表,方便快速入门 Mac 各处的快捷键。(新手专用)
  • Keyboard Maestro Best
    高度自定义的效率工具,加速常用操作,甚至自动化。功能强大,用途甚广,限制你的只有你的想象力。
  • ClipMenu Simple
    剪贴板管理。主要用于快速查询剪贴板的历史记录,并提取出需要的内容保存到当前的剪贴板中。
    (相关 Apps 层出不穷,根据自身需求进行选择,我偏爱轻便简单的 ClipMenu)
  • HyperSwitch
    稳定切换同一 App 下各子窗口。
  • Amphetamine
    防止 Mac 休眠。Mac 每次休眠后都会重启软件,导致软件丢失部分上下文,于是我无法在完全一样的环境下持续工作,一定程度上打断了工作,降低了效率。
  • Bartender
    收起或彻底隐藏毋需过多关注的菜单栏 App 图标。
  • ShowyEdge Great
    输入法状态提示。显示一条样式可定制的色带在屏幕顶部,以提示正在使用什么输入法。在全屏使用 App 时,也能轻易区分输入法状态!
  • ……

  • 后记
    • (跟本博客的许多文章一样)本文会持续地更新,如果有新的体悟,我会补充进来。
    • 有新的好 App 可以推荐给我~ 欢迎讨论,期待您不一样的见解!
0%