目录
- 🚀前言
- 🤔Vim编辑器简介
- ☘️Vim的三大模式
- 🌟Vim的常用命令
- 🐧持久化设置
-
- 💯为什么需要"持久化"?
- [💯实现方式:编辑 Vim 配置文件](#💯实现方式:编辑 Vim 配置文件)
- [💯临时 vs 持久化](#💯临时 vs 持久化)
- 💯进阶技巧
- 💻官方入门教程
🚀前言

大家好!我是 EnigmaCoder。
- 本文将介绍Vim编辑器的三大模式及其常见的命令,同时也介绍持久化设置和官方入门教程。
🤔Vim编辑器简介
Vim是Linux系统中广泛使用的一款高效文本编辑器,作为vi编辑器的升级版本,它不仅能实现基本的文件查看、编辑和保存功能,还新增了语法高亮显示和语法检测等实用特性。
Vim的优点:- 极致高效的模块化编辑,摆脱鼠标依赖。
- 轻量化与全场景适配,是跨场景文本处理的"万能工具"。
- 成熟生态与兼容性,学习成本和使用成本低。
☘️Vim的三大模式
- 命令模式:可以实现基础的复制、粘贴、删除内容以及页面跳转操作。
- 编辑模式/插入模式:可以编辑文本的内容、进行增删改操作。
- 退出模式/末行模式:可以保存文件或另存为文件。

💯模式切换的快捷键
- 从命令模式切换到编辑模式:
| 快捷键 | 说明 |
|---|---|
i |
在 光标所在处切换到编辑模式 |
a |
在光标后面一个字符切换到编辑模式 |
o |
在光标所在行的下一行切换到编辑模式 |
s |
删除光标所在处的字符切换到编辑模式 |
I |
在光标所在行的最前面切换到编辑模式 |
A |
在光标所在行的最后面切换到编辑模式 |
O |
在光标所在处的上一行切换到编辑模式 |
S |
删除光标所在行的整行内容切换到编辑模式 |
- 从命令模式切换到退出模式:
Shift :组合键 - 从退出模式/插入模式切换到命令模式:
ESC键
打开文件默认进入命令模式,编辑模式和退出模式无法直接切换,中间必须经过命令模式。
🌟Vim的常用命令
💯命令模式
命令模式下的常用命令:
| 命令 | 功能描述 |
|---|---|
yy |
复制当前光标所在的行 |
P |
在光标所在行的下一行进行粘贴 |
p |
在光标所在行的上一行进行粘贴 |
dd |
删除光标所在行整行的内容 |
dG |
删除光标所在行及其后面的所有内容 |
nG(n表示数字) |
跳转到第n行内容 |
G |
跳转到最后一行 |
gg |
跳转到文件的第一行 |
x |
删除光标所在处的单个字符 |
u |
撤销上一个操作 |
/关键字 |
可以匹配关键字,输入'n'进行下一个关键字的跳转,输入'N'跳转到上一个关键字 |
这些命令用于实现光标快速移动、文本编辑(删/复/粘/改)、调用行命令及切换其他模式,是Vim高效操作的核心指令。
💯编辑模式
编辑模式下的常用命令:
| 命令 | 功能描述 |
|---|---|
| 退出编辑模式 | |
Esc 或 Ctrl + [ |
退出编辑模式,返回命令模式(最常用) |
Ctrl + c |
功能同 Esc,退出编辑模式(部分环境可能有差异) |
| 文本删除 | |
Ctrl + h |
删除光标前的一个字符(相当于退格键 Backspace) |
Ctrl + w |
删除光标前的一个单词(以空格、标点等为分隔符) |
Ctrl + u |
删除从光标位置到行首的所有内容 |
| 临时执行命令模式命令 | |
Ctrl + o |
临时进入命令模式,执行一个命令后自动返回编辑模式(如快速保存 :w) |
| 插入特殊字符 | |
Ctrl + v |
插入特殊字符(如 Ctrl + v + Enter 插入换行符 ^M,Ctrl + v + 065 插入 A) |
| 自动补全 | |
Ctrl + x + Ctrl + f |
补全文件名 |
Ctrl + x + Ctrl + l |
补全整行(基于当前文件已有内容) |
Ctrl + x + Ctrl + n |
补全当前文件中出现过的单词 |
Ctrl + x + Ctrl + k |
补全字典中的单词(需配置字典路径) |
| 缩进调整 | |
Ctrl + t |
编辑模式下,将当前行向右缩进(增加缩进) |
Ctrl + d |
编辑模式下,将当前行向左缩进(减少缩进) |
这些命令主要用于在编辑模式下高效编辑文本,减少切换到命令模式的频率。如果需要更复杂的操作(如批量替换、行跳转等),通常还是需要切换到命令模式执行。
💯退出模式
退出模式下的命令:
| 命令 | 功能描述 |
|---|---|
| 基础跳转/定位 | |
:n(n 为数字) |
跳转到第 n 行 |
:1 |
跳转到第 1 行(等效普通模式 gg) |
:$ |
跳转到最后一行(等效普通模式 G) |
| 保存与退出 | |
:w 路径 |
将当前文件另存为指定路径(如 :w ~/backup.txt) |
:w! |
强制保存(忽略只读属性,需系统权限) |
:wq |
保存并退出(写入+退出) |
:x |
保存并退出(同 :wq,但文件无修改时不更新修改时间) |
:q |
正常退出(文件无修改时生效,否则拒绝退出) |
:q! |
强制退出,丢弃未保存修改 |
| 内容操作 | |
:%d |
清空当前文件所有内容 |
:s/旧/新/ |
替换当前行第一个 匹配项(不加 g) |
:s/旧/新/g |
替换当前行所有匹配项 |
:s/旧/新/gi |
替换当前行所有匹配项,忽略大小写 (i = ignore case) |
:%s/旧/新/g |
替换整个文件所有匹配项 |
:%s/旧/新/gi |
全局替换+忽略大小写 |
:s#旧#新#g |
用 # 作分隔符(避免与路径中 / 冲突,如 :s#/old#/new#g) |
| 系统交互与扩展 | |
:!命令 |
执行系统命令(如 :!ls 查目录、:!gcc % 编译当前文件) |
| 窗口/分屏 | |
:split 文件名 |
水平分屏打开文件(无文件名则分屏当前文件) |
:vsplit 文件名 |
垂直分屏打开文件 |
:close |
关闭当前分屏窗口 |
| 缓冲区管理 | |
:bnext |
切换到下一个缓冲区(已打开的其他文件) |
:bprev |
切换到上一个缓冲区 |
:bd |
删除当前缓冲区(关闭文件,不退出 Vim) |
| 设置类(临时生效) | |
:set number |
显示行号 |
:set nonumber |
关闭行号 |
:set hlsearch |
高亮搜索匹配结果(如 /关键字 后,匹配项高亮) |
:set nohlsearch |
关闭搜索高亮 |
:set shiftwidth=4 |
设置自动缩进宽度为 4 个空格(需配合 expandtab 更规范) |
:set expandtab |
将 Tab 键 输入转为空格(需结合 shiftwidth 定义空格数) |
- 持久化设置 :若需永久生效,需修改
~/.vimrc配置文件(如set number加入配置)。- 分隔符灵活用 :替换命令的分隔符可换为
#或@(如:s@old@new@g),避免与关键字冲突。
🐧持久化设置
在 Vim 中,持久化设置 指让配置(如行号显示、缩进规则等)永久生效,而非仅当前会话有效。以下是核心原理和实现方法:
💯为什么需要"持久化"?
临时设置(如 :set number)仅对当前 Vim 窗口 有效,关闭后就会重置。如果想让配置"记住"你的习惯(比如每次打开都显示行号、Tab 自动转空格),就需要 持久化配置。
💯实现方式:编辑 Vim 配置文件
Vim 会自动加载用户目录下的 .vimrc 文件(隐藏文件),将设置命令写入该文件,即可实现"启动即生效"。
- 配置文件位置
| 系统 | 配置文件路径 | 说明 |
|---|---|---|
| Linux/Mac | ~/.vimrc(用户主目录下) |
仅对当前用户生效 |
| Windows | C:\Users\你的用户名\_vimrc |
需手动创建(若不存在) |
- 编辑配置文件的步骤
以 Linux/Mac 为例(Windows 操作类似):
-
打开配置文件:在终端或 Vim 中执行
vimvim ~/.vimrc如果文件不存在,Vim 会自动新建。
-
添加持久化设置 :
在文件中写入需要永久生效的命令,每行一条。例如:
vim" 显示行号(引号开头是注释,方便记录) set number " Tab 按一下,自动插入 4 个空格(规范缩进) set expandtab set shiftwidth=4 " 搜索时实时高亮匹配结果 set hlsearch set incsearch " 显示光标所在行列号 set ruler -
保存退出 :按
:wq保存并退出 Vim。 -
立即生效 :下次启动 Vim 时,配置会自动加载;也可通过
:source ~/.vimrc命令,无需重启 直接应用新配置。
💯临时 vs 持久化
| 操作 | 作用范围 | 重启后是否保留 |
|---|---|---|
:set number |
仅当前 Vim 窗口 | ❌ 不保留 |
写入 .vimrc |
所有新启动的 Vim 窗口 | ✅ 永久保留 |
💯进阶技巧
-
注释配置 :用
"开头写注释,方便整理配置逻辑:vim" 【缩进相关】 set expandtab " Tab → 空格 set shiftwidth=4 " 自动缩进 4 个空格 -
覆盖系统配置 :
系统级配置文件(如
/etc/vim/vimrc)会先加载,再加载用户的~/.vimrc。用户配置优先级更高,可覆盖系统默认设置。 -
恢复默认:
- 临时关闭:执行
:set nonumber(仅当前会话); - 永久关闭:删除
.vimrc里的set number行(需重启或:source生效)。
- 临时关闭:执行
简单来说:把临时生效的
:set xxx命令"抄"进.vimrc,就能让配置"永远记住"你的习惯 。如果想定制更复杂的 Vim 环境(比如主题、快捷键),.vimrc也是核心入口。
💻官方入门教程
在 Linux 中练习 Vim,可以选择优先从官方自带的交互式教程入手,它是 Vim 自带的免费教程,分 8 个章节,从基础光标移动、编辑到保存退出, step-by-step 引导,适合纯新手。
- 启动命令:直接在 Linux 终端输入
bash
vimtutor
按照教程提示,在
Vim内直接操作(教程会教你如何移动、删除、修改文本),完成所有章节后,能掌握70%的日常基础操作。