我的Linux版本:CentOS
发行版本:CentOS 8.1
Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本),在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,因此可以在其他任何介绍vi的地方都能进一步了解它,Vi也是Linux中最基本的文本编辑器,学会它后,我们将在Linux的世界里畅行无阻,尤其是在终端中。
vi和vim都是Linux中的编辑器,不同的是,vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding(代码编辑)。
1】.安装Vim
Centos再带Vi,所以要安装Vim取代Vi
-
yum search vim
查找有哪些Vim包 -
which vim
已安装Vim的地址 -
rpm -qf /usr/bin/vim
查看已安装的版本 -
yum install vim-enhanced
安装最新的Vim
打开Vim以及使用在后文
2】.vim的三种模式
1.Vim中存在三种模式:命令模式、编辑模式(输入模式)、末行模式(尾行模式)。
- 命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等等)【打开文件之后默认进入的模式】;
- 编辑模式:在该模式下可以对文件的内容进行编辑;
- 末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等);
2.Vim的打开文件的方式:
-
#vim 文件路径
; #作用:打开指定的文件 -
#vim +数字 文件的路径
; #作用:打开指定的文件,并且将光标移动到指定行 -
#vim +/关键词 文件的路径
; #作用:打开指定的文件,并且高亮显示关键词 -
#vim 文件路径1 文件路径2 文件路径3
; #作用:同时打开多个文件
重点:先复制出一个/etc/passwd
文件,复制当前home目录下(千万不要在etc下直接修改!)
后续一切vim命令都是基于/root/passwd
文件进行操作。
退出方式:输入:q
按下回车即可
3】.命令模式
该模式是打开文件的第一个看到的模式
1.光标移动
- ①光标移动到行首 按键:
shift + 6 或 ^(T字母上面的6,不要按小键盘的6)
- ②光标移动到行尾 按键:
shift + 4 或 $(R字母的左上角的4,不是小键盘的4)
- ③光标移动到首行 按键:
gg
- ④光标移动到末行 按键:
G
- ⑤翻屏 向上翻屏:按键
ctrl + b (before) 或 PgUp
向下翻屏:按键ctrl + f (after) 或 PgDn
2.复制操作
- ①复制光标所在行 按键:
yy
粘贴:在想要粘贴的地方按下p键 - ②以光标所在行为准(包含当前行),向下复制指定的行数 按键:数字
yy
- ③可视化复制 按键:
ctrl + v
(可视块)或V
(可视行)或v
(可视),然后按下↑↓←→
方向键来选中需要复制的区块,按下y
键进行复制,最后按下p
键粘贴
3.撤销/恢复
- ①撤销:输入
:u
(不属于命令模式) 或者u
(undo) - ②恢复:
ctrl + r
恢复(取消)之前的撤销操作
4.剪切/删除
- ①剪切/删除光标所在行 按键:
dd
(删除之后下一行上移) 注意:dd严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。 - ②剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行 按键:
数字dd
(删除之后下一行上移) - ③剪切/删除光标所在的当前行之后的内容,但是删除之后下一行不上移 按键:
D
(删除之后当前行会变成空白行) - ④可视化删除 按键:
ctrl + v
(可视块)或V
(可视行)或v
(可视),↑↓←→
移动,按下D
表示删除选中行,d
表示删选中块
5.光标的快速移动
- ①快速将光标移动到指定的行 按键:数字G
- ②以当前光标为准向上/向下移动n行 按键:数字↑,数字↓
- ③以当前光标为准向左/向右移动n字符 按键:数字←,数字→
- ④末行模式下的快速移动方式:移动到指定的行 按键:输入英文“:”,其后输入行数数字,按下回车
4】.编辑模式
1.进入方式
-
i:
在光标所在字符前插入 -
a:
在光标所在字符后插入 -
o:
在光标所在行的下面另起一新行插入 -
I:
在光标所在行的首行开始插入(如果首行有空格则在空格之后插入) -
A:
在光标所在行的尾行开始插入 -
O:
在光标所在行的上面另起一新行开始插入 -
S:
删除光标所在行并开始插入
2.退出方式
- 按下esc键
5】.末行模式
1.进入方式:
- 由命令模式进入,按下“
:
”或者“/
(表示查找)”即可进入
2.退出方式:
- a. 按下esc
- b. 连按2次esc键
- c. 删除末行全部输入字符
3.使用命令
- ①保存操作(write)
输入:“:w
” 保存文件
输入:“:w 路径
” 另存为
- ②退出(quit)
输入:“:q
” 退出文件
- ③保存并退出
输入:“:wq
” 保存并且退出
- ④强制 (!)
输入:“:q!
” 表示强制退出,刚才做的修改操作不做保存
- vim还支持另外一个保存退出方法“
:x
”。(推荐)
①“
:x
”在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存并退出;
②如果文件没有被修改,但是使用wq进行退出的话,则文件的修改时间会被更新;但是如果文件没有被修改,使用x进行退出的话,则文件修改时间不会被更新的;主要是会混淆用户对文件的修改时间的认定。
不要使用X,X表示对文件进行加密操作。
- ⑤调用外部命令
输入:“:!外部命令
”
- ⑥搜索/查找
输入:“/关键词
”
在搜索结果中切换上/下一个结果:N/n
(next)
如果需要取消高亮,则需要输入:“:nohl
”【no highlight】
- ⑦替换
:s/搜索的关键词/新的内容
替换光标所在行的第一处符合条件的内容
:s/搜索的关键词/新的内容/g
替换光标所在行的全部符合条件的内容
:%s/搜索的关键词/新的内容
替换整个文档中每行第一个符合条件的内容
:%s/搜索的关键词/新的内容/g
替换整个文档的符合条件的内容
%表示整个文件,g表示全局(global)
- ⑧显示行号(临时)
输入:“:set nu
”[number]
如果想取消显示,则输入:“:set nonu
”
6】.模式间的切换
7】.vim的配置
Vim是一款编辑器,编辑器也是有配置文件的。
Vim配置有三种情况:
- a. 在文件打开的时候在末行模式下输入的配置(临时的)
- b. 个人配置文件(
~/.vimrc
,如果没有可以自行新建) - c. 全局配置文件(vim自带,
/etc/vimrc
)
①新建好个人配置文件之后进入编辑
②在配置文件中进行配置 比如显示行号:set nu
配置好之后vim打开文件就会永远显示行号
如果某个配置项,在个人配置文件与全局配置文件产生冲突的时候应该以谁为准?
- ①先在全局的配置中设置不显示行号,在个人的配置文件中设置显示行号,观察结果 最后显示行号:说明以个人为准
- ②先在全局中配置显示行号,在个人中设置不显示行号,观察结果 最后的显示是不显示行号,说明以个人为准