在AIX操作系统中,编辑命令是系统管理和日常运维中不可或缺的工具,其中最常用的是vi
编辑器,它功能强大且灵活,适用于文本编辑、脚本编写和配置文件修改等多种场景。vi
编辑器基于模式的设计理念,分为命令模式、插入模式和末行模式,用户需要根据不同场景切换模式以完成编辑操作,以下是关于AIX中vi
编辑命令的详细说明,包括基本操作、高级功能及实用技巧。

vi
编辑器的启动与退出
启动vi
编辑器非常简单,只需在终端输入vi 文件名
,若文件不存在则会自动创建,编辑test.txt
文件,可执行命令vi test.txt
,进入vi
后,默认处于命令模式,此时无法直接输入文本,需要切换到插入模式进行编辑,退出vi
时,需先返回命令模式,按wq
保存并退出,或q!
强制退出不保存,若只想保存不退出,可使用w
命令。
基本编辑操作
-
模式切换
- 命令模式 → 插入模式:按
i
(在光标前插入)、a
(在光标后插入)、o
(在新行插入)或I
(行首插入)、A
(行尾插入)、O
(上行插入)。 - 插入模式 → 命令模式:按
Esc
键。 - 命令模式 → 末行模式:按,此时可执行保存、退出或搜索等命令。
- 命令模式 → 插入模式:按
-
光标移动
在命令模式下,可通过以下键快速移动光标:h
(左移)、j
(下移)、k
(上移)、l
(右移)w
(移动到下一个单词首)、b
(移动到上一个单词首)、e
(移动到当前单词尾)0
(移动到行首)、(移动到行尾)、G
(移动到文件末尾)、nG
(移动到第n行,如5G
跳转到第5行)
-
文本编辑
(图片来源网络,侵删)- 删除操作:
x
(删除当前字符)、nx
(删除n个字符,如3x
删除3个字符)、dd
(删除当前行)、ndd
(删除n行,如2dd
删除2行) - 复制与粘贴:
yy
(复制当前行)、nyy
(复制n行)、p
(在光标后粘贴)、P
(在光标前粘贴) - 剪切与替换:
dd
剪切后可使用p
粘贴;r
(替换当前字符)、R
(进入替换模式,连续替换多个字符) - 撤销与重做:
u
(撤销上一步操作)、Ctrl + r
(重做被撤销的操作)
- 删除操作:
-
搜索与替换
- 搜索:在命令模式下输入
/关键字
,按Enter
后可向下搜索,按n
跳转到下一个匹配项,N
跳转到上一个匹配项;输入?关键字
可向上搜索。 - 替换:在末行模式下使用
s/旧字符串/新字符串/g
(替换当前行所有匹配项)、n,ms/旧字符串/新字符串/g
(替换第n到m行的所有匹配项)、1,$s/旧字符串/新字符串/g
(替换全文所有匹配项)。
- 搜索:在命令模式下输入
高级功能与技巧
-
多文件编辑
vi
支持同时打开多个文件,使用e 文件名
可打开新文件,bnext
或bprev
切换文件,ls
查看已打开文件列表,bn
切换到下一个文件,bp
切换到上一个文件。 -
分屏操作
- 水平平分:
split
或sp
,当前窗口显示在上方,新文件在下方 - 垂直平分:
vsplit
或vs
,当前窗口显示在左侧,新文件在右侧 - 切换窗口:
Ctrl + w
加方向键(或h
、j
、k
、l
) - 关闭当前窗口:
q
或close
,关闭所有窗口退出qa
- 水平平分:
-
自动缩进与代码补全
(图片来源网络,侵删)- 开启自动缩进:
set autoindent
,输入新行时会自动缩进 - 显示行号:
set nu
,隐藏行号set nonu
- 语法高亮:
syntax on
,关闭syntax off
- 代码补全:在插入模式下按
Ctrl + p
或Ctrl + x
+Ctrl + o
(需支持OmniComplete)
- 开启自动缩进:
-
宏录制与执行
- 录制宏:在命令模式下按
q
加寄存器名(如q a
),执行一系列操作后按q
停止录制 - 执行宏:在命令模式下按加寄存器名(如
@a
),可重复执行宏操作
- 录制宏:在命令模式下按
vi
编辑命令实用技巧总结
功能类别 | 常用命令 | 说明 |
---|---|---|
模式切换 | i /a /o ,Esc |
进入/退出插入模式 |
光标移动 | hjkl ,w /b ,0 /,G |
基础移动与快速跳转 |
文本删除 | x ,dd ,ndd |
字符级与行级删除 |
复制粘贴 | yy ,nyy ,p /P |
行复制与粘贴 |
搜索替换 | /关键字 ,s/旧/新/g |
文本搜索与全局替换 |
多文件操作 | e 文件名 ,bnext |
多文件切换与管理 |
分屏功能 | split ,vsplit ,Ctrl + w |
窗口分割与切换 |
设置选项 | set nu ,set autoindent |
行号显示与自动缩进 |
相关问答FAQs
问题1:在vi
编辑器中如何快速跳转到文件的指定行?
解答:在命令模式下,直接输入行号加G
即可跳转,跳转到第20行,输入20G
后按Enter
,若要跳转到文件首行,可输入1G
或gg
;跳转到文件末行,输入G
即可。
问题2:vi
编辑器中如何批量替换文本中的特定内容?
解答:在末行模式下使用替换命令,若替换当前行的所有匹配项,输入s/旧字符串/新字符串/g
;若替换全文所有匹配项,输入1,$s/旧字符串/新字符串/g
;若替换指定行范围(如第5到10行),输入5,10s/旧字符串/新字符串/g
,注意:g
表示全局替换,否则仅替换每行第一个匹配项。