在Linux系统中,vi(或其增强版vim)是最常用的文本编辑器之一,掌握其修改操作是Linux用户的基本技能,本文将详细介绍vi编辑器中修改文本的具体方法,包括模式切换、基本编辑、文件保存等核心操作,帮助用户高效完成文本修改任务。

vi编辑器的启动与模式基础
vi编辑器有三种核心工作模式:命令模式(默认进入模式)、插入模式(用于编辑文本)和末行模式(用于保存/退出及高级操作),首次打开文件时,vi会自动进入命令模式,此时无法直接输入文字,需通过特定命令切换到插入模式才能修改文本。
启动vi的命令格式为:vi [文件名],若文件不存在则会创建新文件。vi test.txt会打开或创建test.txt文件,并进入命令模式。
修改文本的核心操作流程
从命令模式进入插入模式
在命令模式下,需先切换到插入模式才能输入或修改文本,常用进入插入模式的命令如下:
i:在光标当前位置插入文本,光标后的字符后移。a:在光标当前位置后插入文本,光标后的字符前移。o:在光标所在行下方插入新行,并进入插入模式。O:在光标所在行上方插入新行,并进入插入模式。I:在光标所在行的行首插入文本(忽略行首缩进)。A:在光标所在行的行尾插入文本。
打开文件后按i,即可开始输入或修改文本,此时vi左下角会显示-- INSERT --,提示当前处于插入模式。

插入模式下的编辑操作
进入插入模式后,可直接进行文本输入、删除、修改等操作,类似Windows记事本:
- 输入字符:直接键盘输入即可,支持中文(需系统配置中文环境)。
- 删除字符:
Backspace删除光标前字符,Delete(或Ctrl+H)删除光标后字符。 - 换行:
Enter键在光标处换行,或创建新段落。 - 退出插入模式:按
Esc键返回命令模式,此时左下角的-- INSERT --消失。
命令模式下的高级修改操作
返回命令模式后,可通过组合命令实现高效编辑:
- 光标移动:
h(左)、j(下)、k(上)、l(右):逐字符移动光标。w(后移单词)、b(前移单词)、e(移至单词尾):按单词移动。gg(跳至首行)、G(跳至末行)、nG(跳至第n行,如5G跳至第5行)。
- 文本删除:
x:删除光标所在字符。dd:删除整行(3dd删除从光标开始的3行)。dw:删除一个单词(3dw删除3个单词)。d$:删除光标至行尾内容;d^删除光标至行首内容(不含首字符)。
- 文本复制与粘贴:
yy:复制当前行(5yy复制5行)。p:在光标后粘贴复制的内容;P在光标前粘贴。
- 文本替换:
r+ 字符:替换光标所在字符为指定字符(如rA将光标字符替换为A)。R:进入替换模式,连续替换光标后的字符(按Esc退出)。
- 撤销与重做:
u:撤销上一步操作(3u撤销3步)。Ctrl+R:重做被撤销的操作。
末行模式下的保存与退出
完成修改后,需通过末行模式保存文件或退出,在命令模式下按(冒号)进入末行模式,底部会出现命令行提示符。
w:保存文件(不退出)。q:退出文件(未修改时直接退出)。wq:保存并退出(最常用)。q!:强制退出(不保存修改,适用于误操作需放弃更改时)。wq!:强制保存并退出(需文件写入权限)。
常用修改命令速查表
为方便使用,以下为vi编辑器常用修改命令的总结:

| 功能分类 | 命令/操作 | 说明 |
|---|---|---|
| 模式切换 | i/a/o等 |
进入插入模式(具体见上文) |
Esc |
返回命令模式 | |
| 光标移动 | hjkl |
左/下/上/右移动 |
gg/G |
跳至首行/末行 | |
| 文本删除 | x/dd/dw |
删除字符/整行/单词 |
| 文本复制 | yy |
复制当前行 |
| 粘贴 | p/P |
光标后/前粘贴 |
| 撤销 | u |
撤销操作 |
| 保存退出 | wq |
保存并退出 |
q! |
强制退出(不保存) |
相关问答FAQs
Q1:在vi中误删了大段文本,如何快速恢复?
A1:若未保存文件,可通过撤销操作恢复:在命令模式下按u撤销最后一次删除操作,多次按u可连续撤销多步;若已保存,则需结合u(撤销)和Ctrl+R(重做)操作,或从备份文件恢复(若有)。
Q2:修改文件时提示“readonly”(只读),无法保存怎么办?
A2:这通常是因为文件权限不足(如系统文件)或文件被其他程序占用,解决方法:
- 若文件权限不足,可通过
sudo vi 文件名以管理员身份打开,或修改文件权限(chmod 644 文件名); - 若文件被占用,需先关闭占用该文件的程序,或强制保存(
wq!,需有文件所有者权限)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/34564.html