📝 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:xZZ 保存并退出
:e! 回滚到上次保存的状态

三、光标移动(普通模式)

3.1 基本移动

快捷键 作用
h / j / k / l 左 / 下 / 上 / 右(也可用方向键)
0 (数字零) 跳转到行首第一个字符
^ 跳转到行首第一个非空白字符
$ 跳转到行尾
w 向后跳一个单词(停在词首)
b 向前跳一个单词(停在词首)
e 向后跳一个单词(停在词尾)
ge 向前跳一个单词(停在词尾)

3.2 行间快速跳转

快捷键 作用
gg 跳到文件第一行
G 跳到文件最后一行
42G42gg 跳到第 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 复制与粘贴

快捷键 作用
yyY 复制当前行
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编程工具,助力开发者即刻编程。

更多推荐