在Linux系统中,vi编辑器是一款功能强大的文本处理工具,尤其在CentOS 6.5这类较早版本的系统中,它仍然是管理员进行配置文件编辑和脚本编写的主要工具,掌握vi命令的基本操作和高级技巧,能够显著提升工作效率,本文将详细介绍CentOS 6.5环境下vi命令的使用方法,包括基本模式、常用命令、高级功能及实用技巧。

vi编辑器的工作模式
vi编辑器主要分为三种工作模式:命令模式(Command Mode)、插入模式(Insert Mode)和末行模式(Last Line Mode),理解这三种模式的切换关系是熟练使用vi的关键。
- 命令模式:启动vi后默认进入此模式,用于执行光标移动、复制、粘贴、删除等操作,在此模式下,任何输入都会被当作命令处理。
- 插入模式:用于文本输入,可通过命令模式下的特定命令(如
i、a、o等)进入,此模式下可自由编辑文本,按Esc键返回命令模式。 - 末行模式:用于保存文件、退出编辑器或执行搜索替换等高级操作,通过在命令模式下输入进入,命令执行后自动返回命令模式。
基本操作命令
文件打开与退出
- 打开文件:在终端输入
vi 文件名(如vi test.txt),若文件不存在则创建新文件。 - 退出编辑器:
q:未修改文件时直接退出。q!:放弃修改强制退出。wq或x:保存修改后退出。w 文件名:将文件另存为新文件后继续编辑。
光标移动
- 基本移动:
h(左)、j(下)、k(上)、l(右)。 - 快速跳转:
w:移动到下一个单词开头。b:移动到当前单词开头。- 跳转到行尾。
0或^:跳转到行首(0到绝对行首,^到第一个非空白字符)。G:跳转到文件末尾;nG(如5G)跳转到第n行。
文本编辑
- 插入文本:
i:在光标前插入。a:在光标后插入。o:在当前行下方插入新行。O:在当前行上方插入新行。
- 删除与修改:
x:删除光标所在字符。dd:删除当前行;ndd(如3dd)删除n行。r:替换光标所在字符;R进入替换模式(连续替换直到按Esc)。cc:删除当前行并进入插入模式;ncc修改n行。
- 复制与粘贴:
yy:复制当前行;nyy复制n行。p:在光标后粘贴;P在光标前粘贴。u:撤销上一步操作;Ctrl+R重做。
高级功能与技巧
搜索与替换
- 搜索:在命令模式下输入(如
/error),按n跳转到下一个匹配项,N跳转到上一个。 - 替换:
s/旧文本/新文本:替换当前行第一个匹配项。s/旧文本/新文本/g:替换当前行所有匹配项。%s/旧文本/新文本/g:替换整个文件的所有匹配项。
多文件与窗口操作
- 多文件编辑:
vi 文件1 文件2可同时打开多个文件,通过next(或n)切换到下一个文件,prev切换到上一个文件。 - 分屏显示:
split或sp:水平分屏。vsplit或vs:垂直分屏。- 在分屏间切换:
Ctrl+W加方向键(如Ctrl+W j切换到下方窗口)。
配置与自定义
- 语法高亮:在CentOS 6.5中,可通过创建或编辑
~/.vimrc文件启用语法高亮,添加以下内容:syntax on set number " 显示行号 set autoindent " 自动缩进
- 快捷键映射:在
.vimrc中可自定义快捷键,例如map <F2> :wq<Enter>将F2键映射为保存退出。
实用场景示例
-
编辑配置文件:修改
/etc/sysconfig/network文件,设置主机名:vi /etc/sysconfig/network
按
i进入插入模式,修改HOSTNAME=localhost.localdomain后按Esc,输入wq保存。
-
编写Shell脚本:创建新脚本
backup.sh:vi backup.sh
输入脚本内容后,使用
%s/\r//g清除Windows换行符(若存在),保存后赋予执行权限chmod +x backup.sh。
FAQs
问题1:在vi中如何删除从光标到行尾的内容?
解答:在命令模式下,按d$即可删除从光标位置到行尾的所有字符,若需删除到行首,则使用d^或d0。

问题2:如何取消vi中的高亮搜索结果?
解答:在命令模式下输入noh(或nohlsearch)即可取消当前的高亮显示,此命令在频繁搜索后有助于保持界面整洁。