君子生非异也,善假于物也。
荀子
说明
- 如何高效地使用 Mac?本文旨在简单阐述笔者个人对这个问题的拙见,仅供参考。
- 本文会列举一些快捷键,只为引出想要说明的东西。
- 默认都是 macOS 上使用的快捷键,除非有额外的说明。
- 笔者一开始也是 Windows 用户,后来才用 macOS,所以本文会提及 Windows 和 macOS 之间的一些差异和对比。
- 本文中
鼠标意含trackpad 触控板(Mac 通常使用后者)。
- 相关博文
- 《Tools 利器》列举了绝大多数笔者用的 Apps。
- 《Mac Shortcuts 快捷键》列举了绝大多数笔者用的快捷键。
- 因为以上两篇博文的部分内容与本文有交集,所以不打算重复赘述其中相同的内容,仅作进一步的细化和补充说明。
好处
- 原来不习惯使用快捷键的用户要开始尝试使用,用惯 Windows 后刚转到 macOS 的用户也要重新学习和适应新的快捷键。虽然可能一开始觉得困难,但是值得付出这些学习成本。因为 只要熟悉少数基本的快捷键,操作效率就能显著提升。
- 对极端的键盘党说:对快捷键再熟悉,也必然会碰到键盘难以完成的操作。不要试图用键盘完全取代鼠标,因为暂时没有足够好的解决方案,而且也没有这样做的必要,毕竟存在必须使用鼠标的场合。鼠标操作更自由和精微,符合直觉,基本没有学习成本(对数字时代的原住民来说)。
- 题外话:快捷键用上瘾之后,可能恨不得连触控板都不用了(走火入魔)。笔者就曾试图用键盘完全取代鼠标,感觉并不好。一些 Apps 凭借还算巧妙的方式(如,四象限法)让用户可以用键盘操作鼠标,但是基本都难以适应和熟练使用,通常还不如直接用鼠标操作。而且用完全用键盘取代鼠标操作,会导致手指的操作压力陡增,长时间敲键盘,手指手腕会疲劳疼痛。
- 对极端的键盘党说:对快捷键再熟悉,也必然会碰到键盘难以完成的操作。不要试图用键盘完全取代鼠标,因为暂时没有足够好的解决方案,而且也没有这样做的必要,毕竟存在必须使用鼠标的场合。鼠标操作更自由和精微,符合直觉,基本没有学习成本(对数字时代的原住民来说)。
步骤
- 首先熟悉常用的通用性强的系统快捷键。
- 绝大多数第三方 Apps 都会遵循系统快捷键的设计逻辑和排布规律,复用其中大多数常用的类似或相关的快捷键,以降低学习新快捷键的成本,方便用户快速上手。
- 然后熟悉常用 Apps 的常用快捷键。
- 一般来说,日常高频使用的 Apps 没几个,根据二八法则,只学习最常用的 20% Apps 中的最常用的 20% 快捷键,就能以较低的学习成本大大提升操作效率。
- 如果想要继续进阶,可以修改键盘的键位,使用更强大和专业的 Apps。
- 修改(你认为)不合理的键盘键位。例如,笔者就认为「大写锁定」功能不值得占据
⇪这个如此好按的键位。不但中文使用者不常输入大写字母,不太用不着⇪,连不少英文母语者也会去修改这个键位。- 可能你适应了新键位之后,用别人的电脑或者别人用你的 Mac 会产生不便。但你想一想,是不是正常情况下 98% 的时间你都在使用自己的设备,所以为了提升效率牺牲一些通用性是值得的!
- 增强系统功能的 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 删除/退格NumDigits: 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 时会不适应。习惯之后就会发现
⌘在空格旁边,离大拇指很近,|相关的组合快捷键其实比^的敲起来舒服多了。
- 刚从 Windows 切换到 macOS 时会不适应。习惯之后就会发现
- 重做:
⌘ ⇧ Z重做上一个被⌘ z撤销的操作;Windows 上则是^ y。- 当快捷键用多了,会习惯猜测一个操作对应的快捷键组合额外加上
⇧后,就能触发相反的操作。正如上文的⌘ ⇧ Z之于⌘ z,又如⌘ ⇧ ⇥之于⌘ ⇥(即「正向/反向切换 Apps」),所以这里 macOS「重做」快捷键的设置更合理。
- 当快捷键用多了,会习惯猜测一个操作对应的快捷键组合额外加上
- 好设计:「相关快捷键之间有关联,它们的排布遵循一定的内在逻辑。」
- 它能促进用户对「某一操作该对应哪个快捷键组合」产生一种直觉,用户可以籍此更容易猜出想要的快捷键在哪,大大减轻记忆快捷键的负担。
- 比如,上述的「快捷键组合加
⇧能触发反向操作」的规律。
- 比如,上述的「快捷键组合加
- 一个操作所用的快捷键组合,通常跟该操作的英语表述相关。
- 快捷键组合所用的字母键,通常是该操作对应单词的其中一个字母,通常是首字母。
比如,以上⌘ c的c即copy。 - 有时操作的快捷键之间可能没有关联(只是因为相关的快捷键组合已经被其它更常用的操作占据了)。这时就需要则需要使用「联想」以便记忆快捷键了。
比如,⌘ x的x像剪刀,也能跟cut扯上关系;⌘ v的v跟paste就没有明显的关联,你仍然可以将v联想成插入内容的标识,或者说它代表verbatim(逐字的、一字不差的)。 - 为什么撤销、剪切、复制、粘贴的快捷键对应
zxcv等键位?最显而易见的原因 是「zxv离ccopy 很近,这些操作互有关联,适合放到一起」,而且也靠近⌘、^等功能键,这样的键位组合,敲起来更方便。
- 快捷键组合所用的字母键,通常是该操作对应单词的其中一个字母,通常是首字母。
- 它能促进用户对「某一操作该对应哪个快捷键组合」产生一种直觉,用户可以籍此更容易猜出想要的快捷键在哪,大大减轻记忆快捷键的负担。
文本编辑
- 基本:
⌘ b加粗、⌘ i斜体、⌘ u下划线,⌘ =/⌘ -放大/缩小字体(或界面的显示)…… - 进阶:
- 选中:
- 按住
⇧不放,再按方向键↑、↓、←或→可以选中一段文本。
- 按住
- 删除:
Fn ⌫后向删除字符,跟⌫前向删除相反。⌥ ⌫前向删除一个(中英)单词(或字符串),当然也有对应的Fn ⌥ ⌫后向操作。
注意 macOS 对中文单词的判定并不总能合乎你的期待。
- Emacs:
macOS 的文本编辑控件内置了一些 Emacs 快捷键。- 跳转:
^ a= Windows 的Home;^ e=End。 - 删除:
^ k删除光标当前位置至行尾处的字符串。 - 前后:
^ b=←,^ f=→。
- 跳转:
- 选中:
文件、目录
移动、删除、预览、打开、向上、查看文件属性
- 文件移动:在 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 替身」,将其放到其它地方,例如桌面。「替身」用程序员的话来说,就是指向源文件的「指针」或者「软连接」。打开替身等于打开了原始文件,而删除「替身」不会影响到原始文件。
- 还不如用
- 文件复制:macOS 用
其它常用
- 设置:
⌘ ,基本所有的 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 式插件
- Firefox + VimFX
- 配合 VimFX 拓展,可在浏览器内 全局使用 Vim 键位 浏览网页、操作浏览器!键盘党神器。
- 只要入门其中常用的基本操作,就能感觉到效率的大大提升。能用一个指头按就不要用两个指头,指头在越靠近键盘中心区的地方按就越省力。
- VimFX 默认的键位排布跟 Vim 有一定关联(但不全都有)。熟悉 Vim 的话,用 VimFX 会很顺手;还在学习 Vim 的话,可以帮助你记忆 Vim 的键位。
- 基本操作:
f在当前标签页打开链接,⇧ F在新的标签页打开链接;x=⌘ w关闭标签页,⇧ X=⌘ ⇧ T重新打开最近关闭的一个标签页;j下翻,k上翻,⇧ H=⌘ [前进,⇧ L=⌘ ]后退;⇧ J=^ ⇧ ⇥上一个标签页,⇧ K=^ ⇥下一个;
其它从略,可以通过⇧ ?显示、查询所有 VimFX 的快捷键。 - 其中进阶的操作可以慢慢熟悉,可以通过插件设置来修改键位排布,以便用得更顺手。
- Chrome + Vimium | cVim
- Chrome 也有类似 VimFX 的拓展,以实现同样的功能,但这些拓展无法在页面未加载完毕的情况下使用,不够极致。
- cVim 比 Vimium 更强大,功能更丰富,拥有更多的配置选项,但需要用类似
.vimrc的文本编辑方式来进行配置,不太用户友好。 - Firefox 冷启动较慢,界面不如 Safari、Chrome 漂亮,也有一些 bug。可是工具是拿来用的,最重要的是高效,所以我还是倾向于使用 Firefox + VimFX。
其它插件
- 广告过滤器、网络代理(用于翻墙)、下载工具管理、1Password、印象笔记剪藏等……
- 详见 我的浏览器插件
- 实际需要用到的插件并不多,根据需求自行选择,够用、适合自己就行,尽量保持精简。
- 安装运行太多用处不大、用得不多的插件,不但让浏览器变得更慢,而且还更容易崩溃,得不偿失。
命令行
程序员相关。
工具链推荐: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 ffor Bash)。 - 命令行历史:
↑上一条命令,↓下一条(^ p/^ n也可以)。 - 确认:
^ h=↩确认指令。
- 跳转:
- 命令别名(Aliases)
- 通常用来给常用命令指定一个「缩写」,一遍更便捷地输入长的命令组合。作为程序员,我的手速、输入准确率都一般,就特别喜欢输入缩写命令。
- 例如,我让
gs=git status,gp=git push等(见 Git Aliases 和我的 .zshrc 配置)。
- 例如,我让
alias命令,列出所有的 aliases。
- 通常用来给常用命令指定一个「缩写」,一遍更便捷地输入长的命令组合。作为程序员,我的手速、输入准确率都一般,就特别喜欢输入缩写命令。
- Zsh 还有许多好东西,在此暂略,可以根据自己的需求,自行查阅学习。
- 可以简单参阅我的 .zshrc 配置。注意以上特性并不都是 Zsh 特有的,详看 各种 Shell 的对比。
- 快速切换目录:最常用最便捷的功能
- Vim(也可以选择 Neovim)
- 首先,通用性有保证!服务器没有 GUI 界面,可能没有 Emacs,但是基本不可能没有 Vi*,学会 Vim 保证你在几乎任何服务器环境下都能无碍地编辑文本。
- 其次,拓展广。很多 IDE 和编辑器都有 Vim 插件,不用记太多各个 Apps 专有的快捷键,学会 Vim 就可以在其中进行绝大多数常用的文本编辑操作,减轻记忆负担,提升效率。
- 例如,Sublime Text 系列就自带 Vintage Mode 专门支持 Vim 键位的操作。
- 各种 Shell(命令行)除了自带 Emacs 式的快捷键,其实也有 Vim 式的快捷键,可以尝试一下,看看自己习不习惯。
- tmux
终端多路复用软件,即命令行中的「窗口管理」、「分屏工具」。- 允许一个用户在一个终端窗口或一个远程终端会话中,使用多个终端会话。
- tmux 是由 screen 发展而来的,其中许多命令都是共有的。screen 虽不如后来者 tmux 易用、强大、美观,但是更通用 —— 大多数服务器都有 screen 命令。
- iTerm2
功能和可配置性,比系统自带的终端 Terminal 强大许多。- 对命令行的使用环境要求不高的话,用 Terminal 也没差,只要适合自己,够用就好。
- 其它选择:VS Code 它内置的终端,就很不错。
进阶
- Karabiner 改键
- 从 macOS Sierra 10.12 这个系统版本开始,Karabiner 不可用了。新一代产品 Karabiner-Elements 在开发中。由于它能大大提升我的效率,我还是继续使用旧版本的系统 macOS EI Capitan。
- 我将
⇪改成^,这样的话,按下由^、⌘组合而成的快捷键会顺手很多。 - 原来的
^,用于一键触发^ 凵以便一键切换输入法。- 用专用的单键
^比用⇧或⇪来切换输入法,更不容易影响正常的操作。特别是用 Vim 输入中文时,因为 Vim 有太多跟⇧相关的操作。 - 我用右手掌小鱼际(即靠近小指的部分手掌)去按原来的
^键位,这样的话双手就基本不用远离键盘中心区了(参考盲打键盘的标准姿势)。
- 用专用的单键
- 我从键盘上完全移除了
⇪CapsLock 的大写锁定功能(不改其它键来实现该功能)。- 因为很少用到,Vim 党可以先以小写写完,再用
U指令全部改写为大写,大不了全用⇧来输入大写字母。
- 因为很少用到,Vim 党可以先以小写写完,再用
- 右
⌘改成⎋。因为左小指挪到键盘左上角的⎋略远,- 这样的话,双手就基本不用远离键盘中心区了(参考盲打键盘的标准姿势)。
- 而且这样就可以用强健的右大拇指去代替比较弱小的左小拇指去按
⎋,减轻长时间敲击键盘的手指不适。
- 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 直接录制键盘、鼠标的操作来重复运行,以减少重复的人工劳动。
- 接下来列举的一些其它 Apps,它们大大地提升我的效率,所以推荐您去了解和尝试。
- 具体详见《Tools 利器》,其中列举了绝大多数笔者用的 Apps,包括简要的介绍和进一步的说明。
- 选读《Mac Shortcuts 快捷键》列举了绝大多数笔者用的快捷键,仅供参考。
- 因为以上两篇博文的部分内容与本文有交集,不打算重复赘述其中相同的内容,以下仅简单列举笔者推荐的 Apps 并附上一句话的介绍说明。
- Time Machine Required
macOS 自带的系统备份、恢复软件。要有忧患意识,不要等硬盘坏了、Mac 丢了,才追悔莫及。 - CheatSheet
快捷键快速提醒。长按 Command 键,显示当前程序的快捷键列表,方便快速入门 Mac 各处的快捷键。(新手专用) - Seil
改键软件,是配合 Karabiner 使用的(macOS Sierra 中也不可用了)。 - Keyboard Maestro Best
高度自定义的效率工具,难以一语道尽玄机。可以参考《Keyboard Maestro 入门指南》 - ClipMenu Great
剪贴板管理。主要用于快速查询剪贴板的历史记录,并提取出需要的内容保存到当前的剪贴板中。 - Amphetamine
防止 Mac 休眠。Mac 每次休眠后都会重启软件,导致软件丢失部分上下文,于是我无法在完全一样的环境下持续工作,一定程度上打断了工作,降低了效率。 - Bartender 2
收起或彻底隐藏毋需过多关注的菜单栏 App 图标。 - HyperSwitch
稳定切换同一 App 下各子窗口。 - ShowyEdge Great
输入法状态提示。显示一条样式可定制的色带在屏幕顶部,以提示正在使用什么输入法。在全屏使用 App 时,也能轻易区分输入法状态! - ……
- 后记
- (跟本博客的许多文章一样)本文会持续地更新,如果有新的体悟,我会补充进来。
- 有新的好 App 可以推荐给我~ 欢迎讨论,期待您不一样的见解!
Show Comments