Skip to content

Latest commit

 

History

History
515 lines (329 loc) · 21.8 KB

efficiency-guide.md

File metadata and controls

515 lines (329 loc) · 21.8 KB

macOS Efficiency Guide - 效率指南

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 删除/退格 Windows
  • Num : Digits 0 ~ 9

写法说明

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

macOS

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

基本的 zxcv

最高频的操作: 撤销、剪切、复制、粘贴

  • 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 主页
  • 其余略

进阶插件 Vim

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

Zsh

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 status, gp = git push 等 ( 见 Git Aliases ) .
    • alias 命令, 列出所有的 aliases.
  • Zsh 还有许多好东西, 在此暂略, 可以根据自己的需求, 自行查阅学习.

Vim

Vim ( 也可以选择 Neovim )

  • 首先, 通用性有保证! 服务器没有 GUI 界面, 可能没有 Emacs, 但是基本不可能没有 Vi*, 学会 Vim 保证你在几乎任何服务器环境下都能无碍地编辑文本.
  • 其次, 拓展广. 很多 IDE 和编辑器都有 Vim 插件, 不用记太多各个 Apps 专有的快捷键, 学会 Vim 就可以在其中进行绝大多数常用的文本编辑操作, 减轻记忆负担, 提升效率.
    • 例如, Sublime Text 系列就自带 Vintage Mode 专门支持 Vim 键位的操作.
  • 各种 Shell ( 命令行 ) 除了自带 Emacs 式的快捷键, 其实也有 Vim 式的快捷键, 可以尝试一下, 看看自己习不习惯.
  • 我的配置 .vimrc

tmux

tmux : 终端多路复用软件, 即命令行中的「窗口管理」、「分屏工具」.

  • 允许一个用户在一个终端窗口或一个远程终端会话中, 使用多个终端会话.
  • tmux 是由 screen 发展而来的, 其中许多命令都是共有的. screen 虽不如后来者 tmux 易用、强大、美观, 但是更通用 —— 大多数服务器都有 screen 命令.
  • 我的配置 .tmux.conf

iTerm2

iTerm2 : 功能和可配置性, 比系统自带的终端 Terminal 强大许多.

  • 对命令行的使用环境要求不高的话, 用 Terminal 也没差, 只要适合自己, 够用就好.
  • 其它选择: VS Code, 自带终端 ( Terminal ) , 新一代轻量文本编辑器的佼佼者.

进阶

Karabiner-Elements

Karabiner-Elements 改变键盘的键位

  • 我将 改成 ^, 这样的话, 按下由 ^ 组合而成的快捷键会顺手很多.
  • 原来的 ^, 用于一键触发 ^ 凵 以便一键切换输入法.
    • 用专用的单键 ^ 比用 来切换输入法, 更不容易影响正常的操作. 特别是用 Vim 输入中文时, 因为 Vim 有太多跟 相关的操作. 后来我为了 Vim 更进一步: 只要在中文输入法状态下, 按 , 就会自动切换回英文输入法.
    • 我用右手掌小鱼际 ( 即靠近小指的部分手掌 ) 去按原来的 ^ 键位, 这样的话双手就基本不用远离键盘中心区了 ( 参考盲打键盘的标准姿势 ) .
  • 我从键盘上移除了专门单个键的 CapsLock 大写锁定键 ( 改用 Fn + u = )
    • 因为很少用到, Vim 党可以先以小写写完, 再用 U 指令全部改写为大写, 大不了全用 来输入大写字母.
  • 我的配置 karabiner.json

AppleScript

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

Shell、CLI : Bash 脚本、命令行, 都是程序员的基本功, 就不赘述了


接下来列举的一些其它 Apps, 它们大大地提升我的效率, 所以推荐您去了解和尝试

Time Machine Required

  • macOS 自带的系统备份、恢复软件. 要有忧患意识, 不要等硬盘坏了、Mac 丢了, 才追悔莫及

CheatSheet

  • 快捷键快速提醒. 长按 Command 键, 显示当前程序的快捷键列表, 方便快速入门 Mac 各处的快捷键 ( 新手专用 )

Keyboard Maestro Best

  • 高度自定义的效率工具, 加速常用操作, 甚至自动化. 功能强大, 用途甚广, 限制你的只有你的想象力
  • 可以参考笔者的对其用法的简要介绍 ( tools.md 已删除) 或《Keyboard Maestro 入门指南

ClipMenu Simple

  • 剪贴板管理. 主要用于快速查询剪贴板的历史记录, 并提取出需要的内容保存到当前的剪贴板中
  • 相关 Apps 层出不穷, 根据自身需求进行选择, 我偏爱轻便简单的 ClipMenu

HyperSwitch

  • 稳定切换同一 App 下各子窗口

Amphetamine

  • 防止 Mac 休眠. Mac 每次休眠后都会重启软件, 导致软件丢失部分上下文, 于是我无法在完全一样的环境下持续工作, 一定程度上打断了工作, 降低了效率

Bartender

  • 收起或彻底隐藏毋需过多关注的菜单栏 App 图标.