Chrome、终端和 Vim 键盘快捷键实战指南
2022-04-24

键盘快捷键这东西,学的时候觉得「我记这个干嘛」,用熟了之后觉得「没这个我怎么活」。

这篇整理了我日常开发中真正高频使用的快捷键,覆盖三个工具:Chrome 浏览器、Shell 终端、Vim 编辑器。不是那种把官方文档抄一遍的大全,只收录我实际用得上的。用删除线标注的是理论上有用但我几乎没用过的,供参考。


Chrome 浏览器

Chrome 是开发者待得最久的地方之一。查文档、调 DevTools、看 PR,全在这里。掌握快捷键能让你在标签页之间飞速切换,不用每次都去够鼠标。

标签和窗口

这组是最高频的,尤其是恢复误关标签(Ctrl+Shift+T),救命级别的操作。

操作快捷键
新建窗口Ctrl + N
新建隐私窗口Ctrl + Shift + N
新建标签页Ctrl + T
恢复最近关闭的标签页Ctrl + Shift + T
切换到下一个标签页Ctrl + Tab
跳到最右边的标签页Ctrl + 9
返回上一页Alt + ←
前进到下一页Alt + →
关闭当前标签页Ctrl + W

实用技巧: Ctrl+1 到 Ctrl+8 可以直接跳到对应位置的标签页。开了一堆标签时,比 Ctrl+Tab 来回切快得多。

功能快捷键

操作快捷键
显示/隐藏书签栏Ctrl + Shift + B
打开历史记录Ctrl + H
打开下载页面Ctrl + J
页面内搜索Ctrl + F
跳到搜索的下一个匹配Ctrl + G
打开开发者工具F12Ctrl + Shift + I
打开开发者工具的控制台Ctrl + Shift + J

鼠标组合

鼠标也有组合技,特别是中键点击(如果你的鼠标有的话)。

操作方式
在后台新标签打开链接Ctrl + 点击
在新窗口打开链接Shift + 点击
放大页面Ctrl + 滚轮上
缩小页面Ctrl + 滚轮下
恢复默认缩放Ctrl + 0

进阶:Vimium C 扩展

如果你是 Vim 用户,强烈推荐 Vimium C 这个浏览器扩展。它能让你在 Chrome 里用 Vim 风格的快捷键操作:

装上之后基本可以不碰鼠标浏览网页。


Shell 终端

终端里编辑命令,大部分人的习惯是用方向键一个字符一个字符地移动。这太慢了。Shell 内置了一套 Emacs 风格的快捷键(readline 快捷键),用起来之后编辑长命令的效率会高很多。

光标移动

这是最值得记的一组。Ctrl+A 跳到行首、Ctrl+E 跳到行尾,几乎每天都在用。

快捷键操作
Ctrl + A跳到行首
Ctrl + E跳到行尾
Ctrl + F向前移动一个字符(和右箭头一样,没必要记)
Ctrl + B向后移动一个字符(和左箭头一样,没必要记)
Alt + F向前跳一个单词
Alt + B向后跳一个单词
Ctrl + L清屏,光标移到左上角(等同于 clear 命令)

实用场景: 输了一条很长的命令,发现开头写错了?Ctrl+A 跳到行首改一下,比按住左箭头等半天快 10 倍。

文本编辑

快捷键操作
Ctrl + D删除光标处的字符
Ctrl + T交换光标处和前一个字符
Alt + T交换光标处和前一个单词
Alt + L将光标到词尾的字符转为小写
Alt + U将光标到词尾的字符转为大写

这组我标了删除线,因为实际用得很少。不过 Alt+U 偶尔用来把变量名转大写还挺方便。

剪切和粘贴

Shell 的剪切粘贴和你想的不一样,它有自己的 kill ring(剪切环),用 Ctrl+K/U 剪切,Ctrl+Y 粘贴。

快捷键操作
Ctrl + K剪切从光标到行尾的内容
Ctrl + U剪切从光标到行首的内容
Alt + D剪切从光标到当前词尾
Alt + Backspace剪切从光标到当前词首
Ctrl + Y粘贴最近剪切的内容

实用场景: 输了一条命令但还不想执行,又不想丢掉?Ctrl+U 把整行剪切掉,干别的事情,完了之后 Ctrl+Y 粘贴回来继续。

历史命令

快捷键操作
Ctrl + R反向搜索历史命令(超级好用)
Ctrl + P上一条命令(等同于上箭头)
Ctrl + N下一条命令(等同于下箭头)
!!执行上一条命令
sudo !!用 sudo 重新执行上一条命令

Ctrl+R 是终端里最值得记的快捷键之一。 按下后输入关键词,Shell 会在历史命令中模糊搜索。比如你之前跑过一条很长的 docker 命令,Ctrl+R 然后输入 docker 就能找到它。


Vim 编辑器

Vim 的学习曲线很陡,但一旦过了入门期,编辑效率会有质的飞跃。这里不试图覆盖 Vim 的所有功能,只整理最核心的操作。

模式切换

Vim 最反直觉的地方就是模式的概念。记住:普通模式是默认状态,编辑模式是临时状态

快捷键操作使用场景
i在光标前进入编辑模式最常用的进入编辑方式
I在行首进入编辑模式要在行首添加内容时
a在光标后进入编辑模式要在光标后面追加内容时
A在行尾进入编辑模式要在行尾补充内容时
o在下方新建一行并进入编辑模式最常用,添加新行
O在上方新建一行并进入编辑模式在当前行上面插入内容
s删除当前字符并进入编辑模式替换单个字符
S删除整行并进入编辑模式重写整行
Esc返回普通模式任何时候都能用

光标移动

快捷键操作
h / j / k / l左 / 下 / 上 / 右
w跳到下一个单词开头
b跳到上一个单词开头
e跳到当前单词末尾
0跳到行首
$跳到行尾
gg跳到文件开头
G跳到文件末尾
Ctrl + D向下翻半页
Ctrl + U向上翻半页
{ / }跳到上一个 / 下一个空行(段落间移动)

入门建议: 刚开始不用强迫自己用 hjkl,用方向键也完全没问题。先把其他操作练熟,hjkl 会自然而然地适应。

删除操作

Vim 的删除操作遵循 动作 + 范围 的组合逻辑,非常强大。

快捷键操作
x删除光标处的字符
dd删除整行
dw删除从光标到下一个单词开头
daw删除整个单词(包括周围空格)
diw删除整个单词(不包括周围空格)
D删除从光标到行尾(等同于 d$)
dG删除从当前行到文件末尾
dgg删除从当前行到文件开头

修改操作(change)

c 系列命令是 d 的升级版,删除之后自动进入编辑模式,省了一步。

快捷键操作
cw删除到词尾并进入编辑模式
ciw删除整个单词并进入编辑模式
ci"删除引号内的内容并进入编辑模式
ci(删除括号内的内容并进入编辑模式
cc删除整行并进入编辑模式
C删除到行尾并进入编辑模式

ciw 是我在 Vim 里用得最多的命令。 光标在单词任意位置,ciw 直接替换整个单词,不用先移到词首。改变量名、改参数,极其方便。

复制和粘贴

快捷键操作
yy复制整行
yw复制到词尾
p在光标后粘贴
P在光标前粘贴

撤销和重做

快捷键操作
u撤销
Ctrl + R重做

搜索和替换

快捷键操作
/关键词向下搜索
?关键词向上搜索
n跳到下一个匹配
N跳到上一个匹配
*搜索光标下的单词

替换用 :s 命令,语法是 :%s/旧/新/标志

:%s/foo/bar       " 每行替换第一个 foo 为 bar
:%s/foo/bar/g     " 全局替换所有 foo 为 bar
:%s/foo/bar/gc    " 全局替换,每个都确认
:%s/foo/bar/gi    " 全局替换,忽略大小写

实用命令行模式

:w                " 保存
:q                " 退出
:wq               " 保存并退出
:q!               " 不保存强制退出
:w !sudo tee %    " 忘了 sudo 打开文件?这条命令救你
:set nu           " 显示行号
:set nonu         " 隐藏行号

我的 Vim 使用建议

  1. 不要试图一次学完所有快捷键。 每周加两三个新命令,用熟了再学下一批。
  2. 先搞定退出 Vim。 :q! 强制退出,:wq 保存退出。这两个背住,其他慢慢来。
  3. ciw、dd、o 这三个命令覆盖了大量日常操作。 优先练这几个。
  4. 如果你主要写代码,考虑在 VS Code 里装 Vim 插件。 能享受 Vim 的编辑效率,同时保留 VS Code 的生态。

推荐资源