📝 Vim 编辑器从入门到精通:常用快捷键与高效操作笔记

作为一名 Linux 开发者,Vim 是必学的神器。本文整理了最实用的 Vim 命令,涵盖移动、编辑、搜索、替换、保存退出等场景,帮助您快速上手并提升编辑效率。


一、Vim 的三种核心模式

模式说明如何进入如何退出
普通模式 (Normal)执行命令、移动光标、删除复制等默认打开 Vim 即进入按 Esc 从任何模式返回
插入模式 (Insert)输入文本内容i, a, o 等Esc
命令模式 (Cmdline)执行保存、退出、搜索、替换等普通模式下按 :Esc 或执行命令

💡 提示:无论身处何种模式,多按几次 Esc 总能回到普通模式。


二、文件打开与保存退出

vim filename       # 打开或创建文件
vim +n filename    # 打开文件并跳转到第 n 行(如 vim +42 script.sh)
命令作用
: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 分钟,即可记住大多数基础操作。

📌 本文持续更新,欢迎收藏 + 点赞,有问题评论区交流!
🔗 原创文章,转载注明出处。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐