在AIX操作系统中,vi编辑器是系统管理员和开发人员最常用的文本编辑工具之一,它功能强大且灵活,支持高效的文本编辑和编程操作,vi编辑器的工作模式分为三种:命令模式(Command Mode)、插入模式(Insert Mode)和末行模式(Last Line Mode),理解这三种模式的切换关系是熟练使用vi的基础。

vi的基本操作
-
启动与退出
在终端输入vi filename
即可打开文件(若文件不存在则创建),进入vi后默认处于命令模式,退出方式包括:q
退出(未修改时)q!
强制退出(不保存修改)w
保存但不退出wq
或x
保存并退出
-
模式切换
- 命令模式 → 插入模式:按
i
(在光标前插入)、a
(在光标后插入)、o
(在当前行下方新开一行)等。 - 插入模式 → 命令模式:按
Esc
键。 - 命令模式 → 末行模式:按键,此时底部会出现冒号提示符。
- 命令模式 → 插入模式:按
命令模式下的常用命令
命令模式用于移动光标、删除、复制、粘贴等操作,以下是核心命令分类:
功能分类 | 命令 | 说明 |
---|---|---|
光标移动 | h,j,k,l |
左、下、上、右移动(等同于方向键) |
0 (数字零) |
移至行首 | |
移至行尾 | ||
G |
移至文件末尾 | |
nG |
跳至第n行(如5G 跳至第5行) |
|
文本删除 | x |
删除光标所在字符 |
dd |
删除当前行 | |
ndd |
删除n行(如3dd 删除3行) |
|
d$ |
删除光标至行尾内容 | |
文本复制与粘贴 | yy |
复制当前行 |
nyy |
复制n行 | |
p |
在光标后粘贴 | |
P |
在光标前粘贴 | |
文本修改 | r |
替换光标所在字符 |
R |
替换模式(覆盖后续输入,按Esc 退出) |
|
cw |
修改光标至单词尾的内容 | |
搜索与替换 | /keyword |
向下搜索关键字,按n 跳至下一个,N 跳至上一个 |
s/old/new |
替换当前行中第一个old 为new |
|
s/old/new/g |
替换当前行中所有old 为new |
|
%s/old/new/g |
替换全文中所有old 为new |
末行模式的高级功能
末行模式主要用于保存、退出、执行Shell命令及高级替换操作:

- 文件操作:
w filename
另存为,r filename
读取文件内容到当前光标下方。 - Shell命令:
!command
执行Shell命令(如!ls
列出当前目录文件)。 - 分屏操作:
split filename
水平分屏,vsplit filename
垂直分屏,Ctrl+w w
切换分屏。 - 代码缩进:
>>
(右移当前行)、<<
(左移当前行),可通过set shiftwidth=4
设置缩进空格数。
实用技巧与配置
- 自动缩进:在末行模式输入
set autoindent
,可自动对齐缩进。 - 显示行号:
set nu
显示行号,set nonu
取消显示。 - 语法高亮:
syntax on
开启语法高亮(需支持语法的文件)。 - 撤销与重做:命令模式下
u
撤销,Ctrl+r
重做。
相关问答FAQs
Q1: 在vi中如何同时编辑多个文件?
A1: 启动vi时使用vi file1 file2 file3
,进入后通过next
(或n
)切换到下一个文件,prev
(或N
)返回上一个文件,args
查看所有打开的文件列表。
Q2: 如何在vi中批量替换特定字符串?
A2: 在末行模式中使用替换命令:
- 替换当前行:
s/old/new/g
- 替换全文:
%s/old/new/g
- 替换指定范围(如第1-5行):
1,5s/old/new/g
若需确认每次替换,可添加c
参数(如s/old/new/gc
),替换时会提示确认。
