在Linux和Unix-like系统中,vi(Visual Editor)是一款经典的文本编辑器,其高效的操作方式深受系统管理员和开发者的喜爱,掌握vi的常用命令是提升工作效率的关键,以下将详细列出vi的常用命令并以表格形式呈现,同时补充操作场景和注意事项,帮助用户快速上手。

vi编辑器有三种主要模式:命令模式(Command Mode)、插入模式(Insert Mode)和末行模式(Last Line Mode),初次进入vi时,默认处于命令模式,此时无法直接输入文本,需要通过命令切换到插入模式进行编辑;编辑完成后,需切换回命令模式保存或退出文件;末行模式则用于执行保存、退出、搜索等高级操作。
vi常用命令详解
文件打开与退出命令
在终端输入vi 文件名
即可打开文件,若文件不存在则创建新文件,退出vi的命令需根据需求选择,q
用于退出未修改的文件,wq
保存并退出,q!
强制退出不保存修改,这些命令均在末行模式下执行,因此在输入命令前需先按Esc
键确保处于命令模式,再按进入末行模式。
光标移动命令
光标移动是编辑操作的基础,命令模式下,h
(左)、j
(下)、k
(上)、l
(右)可实现字符级移动;w
(移动到下一个单词首)、b
(移动到上一个单词首)、e
(移动到当前单词末)则用于单词级跳转;0
(行首)、(行尾)、gg
(文件首行)、G
(文件末行)可快速定位行位置。数字+G
(如5G
)可直接跳转至指定行号。
文本编辑命令
插入模式下可直接输入文本,而命令模式下的编辑命令更高效:i
(光标前插入)、a
(光标后插入)、o
(当前行下方插入新行)、O
(当前行上方插入新行)可进入插入模式;x
(删除光标处字符)、dd
(删除当前行)、dw
(删除当前单词)、d$
(删除光标至行尾)用于删除操作;p
(粘贴到光标后)、P
(粘贴到光标前)需配合yy
(复制当前行)、yw
(复制当前单词)使用;u
(撤销上一步操作)、Ctrl+r
(重做)可修正编辑错误。

查找与替换命令
末行模式下,(向下搜索)、(向上搜索)可定位文本,搜索后按n
(下一个结果)、N
(上一个结果)跳转;替换命令%s/旧文本/新文本/g
可全局替换,%s/旧文本/新文本/gc
则会在替换前提示确认,避免误操作。
文件保存与另存命令
保存文件使用w
,若需另存为新文件,则通过w 新文件名
实现;结合可强制操作,如w!
覆盖只读文件,q!
放弃修改退出。
vi常用命令表格
功能分类 | 命令 | 模式 | 说明 |
---|---|---|---|
打开文件 | vi 文件名 | 终端模式 | 打开或创建文件,默认进入命令模式 |
退出文件 | q | 末行模式 | 未修改时退出 |
保存并退出 | wq | 末行模式 | 修改后保存并退出 |
强制退出不保存 | q! | 末行模式 | 放弃所有修改并退出 |
光标左移 | h | 命令模式 | 左移一个字符 |
光标下移 | j | 命令模式 | 下移一行 |
光标上移 | k | 命令模式 | 上移一行 |
光标右移 | l | 命令模式 | 右移一个字符 |
移至行首 | 0 | 命令模式 | 数字0,非字母O |
移至行尾 | 命令模式 | 光标移至当前行末尾 | |
移至文件首 | gg | 命令模式 | 快速跳转至第一行 |
移至文件末 | G | 命令模式 | 快速跳转至最后一行 |
跳转至指定行 | 数字+G | 命令模式 | 如10G 跳转至第10行 |
光标前插入 | i | 命令模式 | 进入插入模式,光标前输入文本 |
光标后插入 | a | 命令模式 | 进入插入模式,光标后输入文本 |
下方插入新行 | o | 命令模式 | 当前行下方新增一行并进入插入模式 |
上方插入新行 | O | 命令模式 | 当前行上方新增一行并进入插入模式 |
删除光标处字符 | x | 命令模式 | 删除单个字符 |
删除当前行 | dd | 命令模式 | 剪切当前行,可配合p 粘贴 |
删除当前单词 | dw | 命令模式 | 从光标处删除至单词末尾 |
删除至行尾 | d$ | 命令模式 | 删除光标右侧所有字符 |
复制当前行 | yy | 命令模式 | 复制整行,可配合p 粘贴 |
复制当前单词 | yw | 命令模式 | 复制光标所在单词 |
粘贴至光标后 | p | 命令模式 | 粘贴复制或剪切的内容 |
粘贴至光标前 | P | 命令模式 | 与p 相对,粘贴在光标左侧 |
撤销操作 | u | 命令模式 | 撤销上一步编辑 |
重做操作 | Ctrl+r | 命令模式 | 恢复撤销的操作 |
向下搜索 | 末行模式 | 搜索后按n 跳转至下一个结果 |
|
向上搜索 | 末行模式 | 搜索后按N 跳转至上一个结果 |
|
全局替换 | %s/旧/新/g | 末行模式 | 替换文件中所有匹配项 |
替换并确认 | %s/旧/新/gc | 末行模式 | 每次替换前提示确认 |
保存文件 | w | 末行模式 | 保存当前修改 |
另存为新文件 | w 新文件名 | 末行模式 | 保存至指定文件名 |
强制保存 | w! | 末行模式 | 覆盖只读文件或保存至无权限文件 |
操作注意事项
- 模式切换:vi的核心在于模式区分,若无法输入文本,需确认是否处于命令模式,按
Esc
可确保回到命令模式。 - 命令大小写:vi命令区分大小写,如
dd
删除行,而DD
无效;w
保存,W
移动到下一个空格分隔的单词。 - 数字前缀:多数命令支持数字前缀,如
3dd
删除连续3行,5j
下移5行,提升批量操作效率。 - 文件权限:保存文件时需确保对文件所在目录有写权限,否则
w
会报错,需使用w!
强制保存(若允许)。
相关问答FAQs
问题1:vi编辑器中如何快速跳转到文件的最后一行?
解答:在命令模式下,按大写字母G
即可快速跳转到文件的最后一行,若需跳转到第一行,可按gg
;跳转到指定行(如第20行),则输入20G
后回车。
问题2:在vi编辑时,如果不小心误删了大段内容,如何恢复?
解答:在命令模式下,按u
可撤销上一步操作,连续按u
可逐步撤销多步操作,若需恢复被撤销的内容,可按Ctrl+r
进行重做,若误删后未进行其他操作,也可通过p
粘贴之前删除的内容(如dd
删除后,p
可粘贴删除的行)。
