在任何基于 Linux 的服务器环境中,尤其是像 CentOS 7 这样广泛用于企业级应用的系统,掌握命令行文本编辑器是每一位系统管理员和开发者的必备技能,在众多编辑器中,vi
(或其增强版 vim
)以其无处不在、功能强大和资源占用极低的特点,成为了事实上的标准,它没有图形界面,所有操作都通过键盘命令完成,一旦熟练掌握,其编辑效率远超许多图形化工具,本文将系统性地介绍在 CentOS 7 环境下 vi
命令的核心概念与常用操作。
理解 vi 的核心模式
初学者接触 vi
时最大的困惑点在于其独特的工作模式。vi
主要有三种核心模式,理解它们是熟练使用 vi
的基石。
命令模式
这是vi
启动后的默认模式,在此模式下,你输入的任何字符都被视为一个命令,而不是文本内容,按下j
键会将光标向下移动一行,而不是输入字母 “j”,此模式主要用于光标移动、文本删除、复制、粘贴等操作。插入模式
当需要输入或编辑文本内容时,必须进入插入模式,在命令模式下按下特定的键(如i
,a
,o
等)即可切换到此模式,进入后,屏幕底部通常会出现-- INSERT --
或-- 插入 --
的提示,在此模式下,你的键盘输入会直接显示在文件中,就像使用普通的记事本一样,完成输入后,需要按Esc
键返回命令模式。末行模式
也称为命令行模式,在命令模式下按下冒号 键即可进入末行模式,此时光标会跳到屏幕最底部,你可以输入一些更复杂的指令,如保存文件、退出编辑器、搜索替换字符串等,执行完命令后,按Enter
键即可返回命令模式。
基础操作指南
掌握了三种模式后,我们就可以开始进行实际的文件操作了。
启动与退出
在终端中输入 vi
加上文件名即可打开或创建文件。vi /etc/sysconfig/network-scripts/ifcfg-eth0
会编辑网络配置文件。
退出 vi
是初学者的另一个常见难题,以下表格小编总结了最常用的退出命令(需在末行模式下输入):
命令 | 功能说明 |
---|---|
w | 保存(write)当前文件的修改,但不退出。 |
q | 退出(quit)编辑器,如果文件有修改则会提示。 |
wq | 保存修改并退出。 |
q! | 强制退出,不保存任何修改。 |
w filename | 另存为名为 filename 的新文件。 |
光标移动
在命令模式下,高效地移动光标是快速编辑的关键。
按键 | 功能说明 |
---|---|
h , j , k , l | 分别代表左、下、上、右移动光标。 |
w | 移动到下一个单词的开头。 |
b | 移动到上一个单词的开头。 |
0 (数字零) | 移动到当前行的行首。 |
移动到当前行的行尾。 | |
gg | 移动到文件的第一行。 |
G | 移动到文件的最后一行。 |
文本编辑
进入插入模式
i
:在光标前插入。a
:在光标后追加。o
:在当前行下方新建一行并进入插入模式。I
:在当前行首插入。A
:在当前行尾追加。O
:在当前行上方新建一行并进入插入模式。
删除操作
x
:删除光标所在处的单个字符。dw
:删除从光标处到当前单词结尾的内容。dd
:删除光标所在的整行。D
:删除从光标处到行尾的所有内容。
复制与粘贴
yy
:复制光标所在的整行。p
:在光标所在行的下方粘贴复制或删除的内容。P
:在光标所在行的上方粘贴。
撤销与重做
u
:撤销上一步操作。Ctrl + r
:重做(撤销的撤销)。
搜索与替换
vi
的搜索和替换功能非常强大,尤其在处理配置文件或日志时极为有用。
搜索
在命令模式下,输入 加上要搜索的字符串,然后按Enter
,光标会跳转到第一个匹配项。/error
会向下搜索 “error”。- 按
n
键可以跳转到下一个匹配项。 - 按
N
键可以跳转到上一个匹配项。 - 使用 代替 可以进行向上搜索。
- 按
替换
替换操作在末行模式下进行。s/old/new/g
:将当前行中所有的 “old” 替换为 “new”。%s/old/new/g
:将整个文件中所有的 “old” 替换为 “new”,这是最常用的全局替换命令。%s/old/new/gc
:在全局替换时,对每一个匹配项进行确认提示(c
代表 confirm),输入y
确认替换,n
跳过。
vi 的进阶技巧与配置
多文件编辑
可以同时打开多个文件:vi file1 file2
,在末行模式下使用n
切换到下一个文件,prev
切换到上一个文件。分屏显示
在末行模式下输入split
(或sp
)可以水平分割窗口,输入vsplit
(或vsp
)可以垂直分割窗口,使用Ctrl + w
再加上方向键(h
,j
,k
,l
)可以在不同窗口间切换光标。个性化配置
vi
的行为可以通过配置文件~/.vimrc
(注意是vimrc
,因为 CentOS 7 中的vi
通常是vim
的别名)进行自定义,如果文件不存在,可以自行创建,在此文件中添加一些常用配置,可以让vi
更好用。set number " 显示行号 set autoindent " 自动缩进 syntax on " 开启语法高亮 set hlsearch " 高亮显示搜索结果
每次启动
vi
时,它都会自动读取这个配置文件,使你的设置永久生效。
相关问答 FAQs
问题 1:在 vi 中,我无法输入文字,按键盘没反应,光标到处乱跳,怎么办?
解答: 这是 vi
初学者最常遇到的问题,原因是你当前正处于 命令模式,在此模式下,键盘输入被解释为移动、删除等命令,而不是文本,要开始输入文字,你需要先按下 i
(在光标前插入)或 a
(在光标后追加)键,进入 插入模式,此时屏幕底部会出现 -- INSERT --
提示,你就可以正常输入了,编辑完成后,记得按 Esc
键返回命令模式,以便进行保存、退出等其他操作。
问题 2:如何让 vi 显示行号,并且在每次启动时自动生效?
解答: 要临时显示行号,可以在 末行模式(按 进入)下输入 set number
或其简写 set nu
,然后按 Enter
,这个设置仅在当前这次编辑会话中有效,如果你希望每次打开 vi
都自动显示行号,需要进行永久配置,方法是在你的用户主目录下创建或编辑一个名为 .vimrc
的隐藏文件(路径为 ~/.vimrc
),在文件中加入一行 set number
,然后保存退出,之后,无论何时启动 vi
,行号都会自动加载,极大地方便了代码和配置文件的阅读与定位。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复