在Linux系统中,vi(或其增强版vim)是一款功能强大的文本编辑器,广泛应用于服务器管理和日常开发中,掌握vi命令的文件修改操作是Linux用户的必备技能,本文将详细介绍vi命令的使用方法,包括启动模式、基本操作、高级技巧及注意事项,帮助用户高效完成文件编辑任务。

vi的启动与模式切换
vi编辑器有三种主要工作模式:命令模式(Command Mode)、插入模式(Insert Mode)和末行模式(Last Line Mode),启动vi时默认进入命令模式,需通过特定命令切换模式才能进行编辑操作。
启动vi
在终端输入vi 文件名即可打开文件,若文件不存在,vi会自动创建新文件。vi test.txt
模式切换
- 命令模式 → 插入模式:按
i(在光标前插入)、a(在光标后插入)、o(在新行插入)等键进入插入模式。 - 插入模式 → 命令模式:按
Esc键返回命令模式。 - 命令模式 → 末行模式:按(冒号)进入末行模式,用于保存、退出或执行高级命令。
- 命令模式 → 插入模式:按
基本编辑操作
在命令模式下,可通过快捷键实现光标移动、文本删除、复制粘贴等操作。

光标移动
| 操作 | 功能说明 |
|---|---|
h | 光标左移一格 |
j | 光标下移一行 |
k | 光标上移一行 |
l | 光标右移一格 |
0或^ | 移至行首 |
| 移至行尾 | |
gg | 跳至文件首行 |
G | 跳至文件末行 |
nG | 跳至第n行(如10G) |
文本删除与修改
| 操作 | 功能说明 |
|---|---|
x | 删除光标所在字符 |
dd | 删除当前行 |
ndd | 删除n行(如3dd) |
dw | 删除一个单词 |
d$ | 删除至行尾 |
r | 替换光标所在字符 |
cc | 修改整行 |
s | 替换当前字符并进入插入模式 |
复制与粘贴
| 操作 | 功能说明 |
|---|---|
yy | 复制当前行 |
nyy | 复制n行(如5yy) |
p | 在光标后粘贴 |
P | 在光标前粘贴 |
yw | 复制一个单词 |
撤销与重做
| 操作 | 功能说明 |
|---|---|
u | 撤销上一步操作 |
Ctrl + r | 重做被撤销的操作 |
高级编辑技巧
查找与替换
在末行模式下,可通过以下命令实现文本搜索与替换:
- 查找:(向下搜索)、(向上搜索),按
n跳至下一个匹配项,N反向跳转。 - 替换:
:s/旧文本/新文本/g # 替换当前行所有匹配项 :%s/旧文本/新文本/g # 替换全文所有匹配项 :n1,n2s/旧文本/新文本/g # 替换第n1至n2行的匹配项
多文件编辑
- 打开多个文件:
vi 文件1 文件2,通过next(下一个文件)、prev(上一个文件)切换。 - 分屏编辑:
split(水平分屏)、vsplit(垂直分屏)Ctrl + w + 方向键切换分屏
可视模式
按v进入字符可视模式,按V(大写)进入行可视模式,按Ctrl + v进入块可视模式,可通过移动选择文本后执行删除(d)、复制(y)等操作。
保存与退出
在末行模式下,可通过以下命令管理文件:
| 操作 | 功能说明 |
|————|————————|
| w | 保存当前文件 |
| q | 退出vi |
| wq | 保存并退出 |
| q! | 强制退出(不保存修改) |
| w 新文件名 | 另存为其他文件 |
实用技巧与注意事项
- 自动缩进:在末行模式下输入
set ai可开启自动缩进,适合编辑代码。 - 显示行号:
set nu显示行号,set nonu隐藏行号。 - 语法高亮:
syntax on开启语法高亮(需vim支持)。 - 避免误操作:在命令模式下频繁按
Esc确保处于正确模式,防止误触发命令。 - 备份文件:编辑前可通过
w! 备份名创建备份,或设置autowrite自动保存。
相关问答FAQs
问题1:如何在不退出vi的情况下执行Linux命令?
解答:在末行模式下输入!命令即可执行Linux命令,例如!ls查看当前目录文件,执行后按回车返回vi,若需长期保留命令输出,可结合r !命令将结果插入文件中。

问题2:vi中如何快速跳转到匹配的括号(如{}、[])?
解答:将光标置于任意括号上,按键即可跳转到匹配的括号,此功能需确保文件中括号成对出现,且matchpairs选项已设置(默认包含{:}, [:], (:})。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/395890.html<
