📝 Vim 编辑器从入门到精通:常用快捷键与高效操作笔记
作为一名 Linux 开发者,Vim 是必学的神器。本文整理了最实用的 Vim 命令,涵盖移动、编辑、搜索、替换、保存退出等场景,帮助您快速上手并提升编辑效率。
一、Vim 的三种核心模式
| 模式 | 说明 | 如何进入 | 如何退出 |
|---|
| 普通模式 (Normal) | 执行命令、移动光标、删除复制等 | 默认打开 Vim 即进入 | 按 Esc 从任何模式返回 |
| 插入模式 (Insert) | 输入文本内容 | i, a, o 等 | Esc |
| 命令模式 (Cmdline) | 执行保存、退出、搜索、替换等 | 普通模式下按 : | Esc 或执行命令 |
💡 提示:无论身处何种模式,多按几次 Esc 总能回到普通模式。
二、文件打开与保存退出
vim filename
vim +n filename
| 命令 | 作用 |
|---|
:w | 保存文件 |
:w filename | 另存为 filename |
:q | 退出(未保存时提示拒绝) |
:q! | 强制退出,不保存修改 |
:wq 或 :x 或 ZZ | 保存并退出 |
:e! | 回滚到上次保存的状态 |
三、光标移动(普通模式)
3.1 基本移动
| 快捷键 | 作用 |
|---|
h / j / k / l | 左 / 下 / 上 / 右(也可用方向键) |
0 (数字零) | 跳转到行首第一个字符 |
^ | 跳转到行首第一个非空白字符 |
$ | 跳转到行尾 |
w | 向后跳一个单词(停在词首) |
b | 向前跳一个单词(停在词首) |
e | 向后跳一个单词(停在词尾) |
ge | 向前跳一个单词(停在词尾) |
3.2 行间快速跳转
| 快捷键 | 作用 |
|---|
gg | 跳到文件第一行 |
G | 跳到文件最后一行 |
42G 或 42gg | 跳到第 42 行 |
:42 回车 | 同样跳到第 42 行 |
H | 跳到屏幕顶部行 |
M | 跳到屏幕中间行 |
L | 跳到屏幕底部行 |
Ctrl + f | 向下翻一页 (forward) |
Ctrl + b | 向上翻一页 (backward) |
Ctrl + d | 向下翻半页 (down) |
Ctrl + u | 向上翻半页 (up) |
zz | 将当前行置于屏幕中央 |
3.3 跳转历史
| 快捷键 | 作用 |
|---|
Ctrl + o | 回到上一个光标位置 |
Ctrl + i | 前进到下一个光标位置 |
四、编辑操作
4.1 进入插入模式
| 快捷键 | 作用 |
|---|
i | 在光标前插入 |
a | 在光标后插入 |
I | 在行首插入 |
A | 在行尾插入 |
o | 在下一行新建插入 |
O | 在上一行新建插入 |
cc | 删除整行并进入插入模式 |
C | 删除光标至行尾并进入插入模式 |
4.2 删除(普通模式)
| 快捷键 | 作用 |
|---|
x | 删除光标处的字符 |
X | 删除光标前的字符 |
dd | 删除当前行 |
5dd | 删除从当前行开始的 5 行 |
dw | 删除光标后的一个单词 |
d0 | 删除光标前至行首 |
d$ 或 D | 删除光标后至行尾 |
dgg | 删除从当前行到文件首 |
dG | 删除从当前行到文件尾 |
:1,10d | 删除第 1 行到第 10 行 |
4.3 复制与粘贴
| 快捷键 | 作用 |
|---|
yy 或 Y | 复制当前行 |
5yy | 复制 5 行 |
yw | 复制一个单词 |
y$ | 复制光标至行尾 |
p | 在光标后粘贴(行粘贴会在下一行) |
P | 在光标前粘贴 |
4.4 撤销与重做
| 快捷键 | 作用 |
|---|
u | 撤销上一次操作 |
Ctrl + r | 重做(撤销的逆操作) |
. | 重复上一次修改操作(神器!) |
五、搜索与替换
5.1 普通模式搜索
| 快捷键 | 作用 |
|---|
/keyword | 向下搜索 keyword |
?keyword | 向上搜索 keyword |
n | 跳转到下一个匹配项 |
N | 跳转到上一个匹配项 |
* | 搜索光标当前所在的单词(向下) |
# | 搜索光标当前所在的单词(向上) |
5.2 命令模式替换
:s/old/new # 替换当前行第一个 old
:s/old/new/g # 替换当前行所有 old
:%s/old/new/g # 替换整个文件所有 old
:%s/old/new/gc # 替换每个 old 前询问确认
:5,10s/old/new/g # 替换第 5 行到第 10 行
🔍 技巧:搜索时支持正则表达式,如 /^function 搜索行首的 function。
六、显示行号
| 命令 | 作用 |
|---|
:set nu 或 :set number | 显示绝对行号 |
:set nonu | 关闭行号 |
:set rnu 或 :set relativenumber | 显示相对行号(方便跳转) |
:set number relativenumber | 同时显示绝对 + 相对行号 |
💡 永久生效:在 ~/.vimrc 中加入 set number。
七、可视模式(选中文本)
| 快捷键 | 作用 |
|---|
v | 进入字符可视模式,用 hjkl 选取 |
V | 进入行可视模式,整行选取 |
Ctrl + v | 进入块可视模式(列编辑) |
y / d / p | 复制 / 删除 / 粘贴选中的内容 |
> / < | 向右 / 向左缩进选中行 |
= | 自动缩进选中行 |
块编辑示例:Ctrl+v 选择多列,按 I 输入文字,再按 Esc 即可批量插入。
八、常用组合键速查表
| 快捷键 | 作用 |
|---|
>> | 当前行右缩进(shiftwidth) |
<< | 当前行左缩进 |
J | 将下一行合并到当前行 |
~ | 切换光标字符的大小写 |
guw | 将单词转为小写 |
gUw | 将单词转为大写 |
r + x | 将光标处字符替换为 x |
R | 进入替换模式(覆盖输入) |
:%!xxd | 以十六进制查看文件 |
:%!xxd -r | 恢复原文件 |
九、多文件与窗口操作
9.1 分屏
| 命令 | 作用 |
|---|
:sp filename | 水平分屏(可省略 filename) |
:vsp filename | 垂直分屏 |
Ctrl + w h / j / k / l | 切换到左/下/上/右屏 |
Ctrl + w q | 关闭当前分屏 |
Ctrl + w = | 平均分配窗口大小 |
Ctrl + w + / - | 调整高度 |
9.2 标签页
| 命令 | 作用 |
|---|
:tabnew filename | 新建标签页 |
gt 或 :tabn | 下一个标签页 |
gT 或 :tabp | 上一个标签页 |
十、高级小技巧
| 技巧 | 说明 |
|---|
:!command | 在 Vim 内执行 shell 命令(如 :!ls) |
:r !date | 将命令输出插入到当前光标 |
qa 开始录制,q 结束,@a 回放 | 宏录制(自动化重复操作) |
:set ignorecase | 搜索时忽略大小写 |
:set hlsearch | 高亮所有搜索结果 |
:nohlsearch | 临时取消高亮 |
:set wrap / :set nowrap | 自动换行 / 关闭换行 |
写在最后
Vim 的学习曲线较陡,但掌握 20% 的核心命令就能应付 80% 的日常编辑。建议将常用命令做成卡片贴在桌边,逐步形成肌肉记忆。
推荐练习方法:在终端输入 vimtutor,跟随内置教程练习 30 分钟,即可记住大多数基础操作。
📌 本文持续更新,欢迎收藏 + 点赞,有问题评论区交流!
🔗 原创文章,转载注明出处。
所有评论(0)