Linux vi 编辑模式是 Linux 系统中 vi 编辑器的核心操作逻辑,理解并熟练掌握不同编辑模式的功能与切换方法,是高效使用 vi 进行文本编辑的基础,vi 编辑器采用“模式化”设计理念,将编辑操作分为不同模式,每种模式对应特定的操作命令,这种设计虽然初期需要一定学习成本,但熟练后能极大提升编辑效率。

vi 编辑模式的核心分类
vi 编辑器主要包含四种核心模式:普通模式(Normal Mode)、插入模式(Insert Mode)、命令行模式(Command-Line Mode)和可视模式(Visual Mode),每种模式都有明确的用途和操作场景,用户通过特定命令在不同模式间切换,完成从光标移动到文本编辑的全流程操作。
普通模式:高效操作的基础
普通模式是 vi 的默认模式,启动 vi 后直接进入该模式,在此模式下,用户无法直接输入文本,但可以通过命令进行光标移动、文本删除、复制、粘贴等高效操作,是 vi 编辑的“控制中心”。
光标移动
- 基本移动:
h(左移一字符)、j(下移一行)、k(上移一行)、l(右移一字符),无需方向键,符合 vi 的“键盘友好”设计。 - 快速跳转:
w(移至下一单词首)、b(移至上一单词首)、e(移至当前单词尾);0(移至行首)、(移至行尾);gg(移至文件首)、G(移至文件尾);nG(跳转至第 n 行,如5G跳转至第 5 行)。
文本操作
- 删除:
x(删除光标处字符)、nx(删除光标后 n 个字符,如3x删除 3 个字符);dd(删除当前行)、ndd(删除当前行及后 n-1 行,如2dd删除 2 行)。 - 复制:
yy(复制当前行)、nyy(复制当前行及后 n-1 行);yw(复制从光标到单词尾的内容)、nyw(复制 n 个单词)。 - 粘贴:
p(将缓冲区内容粘贴至光标后)、P(粘贴至光标前)。
其他操作
- 撤销与重做:
u(撤销上一步操作)、Ctrl+r(重做被撤销的操作)。 - 重复执行:(重复执行上一次普通模式命令,如
dd后按 可继续删除下一行)。
插入模式:文本编辑的核心
插入模式是直接编辑文本的模式,用户可通过普通模式下的特定命令进入,在此模式下输入的字符会直接插入到文件中。
进入插入模式的命令
i:在光标前插入文本(Insert)。a:在光标后插入文本(Append)。o:在当前行下方插入新行并进入插入模式(Open below)。O:在当前行上方插入新行并进入插入模式(Open above)。I:在行首插入文本(大写 I,忽略前导空白)。A:在行尾插入文本(大写 A,移至行尾后插入)。
退出插入模式
插入模式下,按 Esc 键可返回普通模式,这是退出插入模式的唯一方式。

命令行模式:强大的控制中心
命令行模式用于执行保存文件、退出编辑器、搜索替换、设置环境等高级操作,通过普通模式下的 键进入,命令执行后自动返回普通模式。
文件操作
w:保存文件(Write)。q:退出 vi(Quit),若文件未保存会提示错误。wq或x:保存文件并退出(Write and Quit)。q!:强制退出,不保存修改(Quit without saving)。w filename:将文件另存为filename(如w backup.txt)。e filename:打开并编辑filename(如e newfile.c)。
搜索与替换
- 搜索:
/pattern向下搜索pattern(如/hello),?pattern向上搜索;n跳至下一个匹配项,N跳至上一个匹配项。 - 替换:
s/old/new替换当前行第一个old为new;s/old/new/g替换当前行所有old;%s/old/new/g替换全文所有old( 表示全文范围)。
环境设置
set nu:显示行号(Number)。set nonu:隐藏行号。set ai:自动缩进(Auto Indent)。set syntax=on:开启语法高亮(需支持语法的文件)。
可视模式:精准选择文本
可视模式用于选择文本块,对选中的文本进行删除、复制、替换等操作,通过普通模式下的特定命令进入。
可视模式类型
- 字符可视模式:
v进入,可选择连续的字符块(按v后移动光标选中文本)。 - 行可视模式:
V(大写 V)进入,可选择整行(移动光标可扩展选择范围)。 - 块可视模式:
Ctrl+v进入,可选择矩形文本块(适合多列编辑,如同时修改多行代码的同一位置)。
可视模式操作
进入可视模式后,可通过移动光标扩大选择范围,执行 d(删除)、y(复制)、c(修改后进入插入模式)等命令操作选中文本,按 Esc 返回普通模式。
模式切换:流畅编辑的关键
vi 编辑的流畅性依赖于模式间的快速切换,核心逻辑为:普通模式作为“枢纽”,通过命令进入其他模式,操作完成后返回普通模式,典型工作流程如下:

- 启动 vi:
vi filename→ 进入普通模式。 - 编辑文本:普通模式输入
i→ 进入插入模式 → 输入文本 → 按Esc返回普通模式。 - 保存退出:普通模式输入
wq→ 进入命令行模式 → 执行命令退出。
实用技巧:提升编辑效率
- 多窗口编辑:
split水平分屏(vsplit垂直分屏),可在多个文件间切换(bn下一个文件,bp上一个文件)。 - 宏录制:普通模式输入
q+ 寄存器字母(如q)→ 执行一系列操作 → 按q停止录制,通过 + 寄存器字母执行宏(如@q)。 - 自动补全:插入模式下按
Ctrl+p或Ctrl+n可根据当前内容补全单词(需配置字典)。
掌握 vi 编辑模式需要反复练习,初期可从普通模式的光标移动和基本操作入手,逐步熟悉插入模式的文本输入、命令行模式的文件管理,最终通过可视模式实现精准编辑,虽然模式切换看似繁琐,但一旦形成肌肉记忆,vi 将成为 Linux 环境下高效编辑文本的利器。

















