Vim 命令速查表 - Vim 编辑器常用操作命令大全
在没有图形界面的服务器上改配置文件,Vim 是绕不开的工具:这套操作覆盖光标精准移动、批量替换、可视块列编辑,以及忘了 sudo 时的提权保存。花十分钟把 motion 与查找替换练成肌肉记忆,之后改 nginx、sshd 这类配置都能自然提速。
移动 Motion 5
gg / G跳到文件开头 / 结尾
0 / $跳到行首 / 行尾
w / b向后 / 向前跳一个词
:42跳到第 42 行
Ctrl-f / Ctrl-b向下 / 向上翻一屏
编辑 Edit 6
i / a在光标前 / 后进入插入模式
o / O在下方 / 上方新建一行并插入
dd / yy删除 / 复制当前行
p / P在光标后 / 前粘贴
u / Ctrl-r撤销 / 重做
x / r<char>删除字符 / 替换单个字符
查找替换 Search 4
/word向下查找 word,n 下一个 N 上一个
:%s/old/new/g全文替换 old 为 new
:%s/old/new/gc全文替换并逐个确认
:noh清除查找高亮
可视模式与保存退出 6
v / V字符可视 / 行可视选择
Ctrl-v块可视,列编辑用
:w保存
:wq 或 ZZ保存并退出
:q!不保存强制退出
:w !sudo tee %忘记 sudo 打开时强制保存
提示
- 卡在 Vim 出不去:按 Esc 回到普通模式,再输入 :q! 强制不保存退出。
- 编辑系统文件忘了 sudo,用 :w !sudo tee % 直接提权保存,不用退出重开。
- 大段替换前先 /word 确认匹配范围,再用 :%s,加 c 标志逐个确认更安全。
常见问题
Vim 普通、插入、命令三种模式怎么快速切换?
启动默认在普通模式,按 i/a/o 进入插入模式打字,按 Esc 回到普通模式执行移动和编辑;普通模式下输入冒号进入命令行模式,输入 / 进入搜索。记住普通模式只负责操作、插入模式只负责打字即可。
用 Vim 打开文件后才发现没加 sudo,改完没法保存怎么办?
不用退出重开,直接输入 :w !sudo tee % 用 root 权限写回当前文件(% 代表当前文件名);若缓冲已只读,先 :e % 重新加载。更省事的方式是一开始就用 sudo vim 打开。
怎么在当前文件里全局替换,比如把所有 foo 改成 bar?
用 :%s/foo/bar/g 做全文件替换,加 ^ 限定行首、加 $ 限定行尾,去掉末尾的 g 则只替换每行首个匹配。需要逐个确认时改用 :%s/foo/bar/gc,用 y 或 n 决定每个替换。
改错了想撤销,撤销过头了想重做,怎么操作?
普通模式下按 u 撤销上一步,按 Ctrl+r 重做被撤销的操作;Vim 的撤销是多级历史,可连按 u 连续回退。若想丢弃全部更改,用 :q! 不保存强制退出即可。
想在多行同一列插入或删除内容(列编辑)怎么做?
普通模式下按 Ctrl+v 进入可视块模式,垂直移动选中多行同一列,按 I 在上部输入,最后按 Esc 让 Vim 把输入复制到整列各行的相同位置;按 d 或 x 则可删除选中的纵向区间。
由 巧匠 维护
公开更新于 2026年7月21日,内容持续校对官方文档。