一、Vim的安装
1、CentOS 系统中,使用如下命令即可安装 Vim:
yum install vim
2、Ubuntu系统(或者deepin):
sudo apt-get install Vim
3、文本编辑器VIM的优点或者使用的原因:
推荐使用 Vim 文本编辑器的原因有很多,比如说:
(1)几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;
(2)在使用 Linux 系统过程中,很多软件的编辑接口都会默认调用 Vim 文件编辑器,例如 crontab、Visudo、edquota等命令;
(3)Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计;
(4)使用 Vim 文本编辑器,编辑速度会更快。
二、VIM的三种工作模式
1、vim的命令模式:
使用 Vim 编辑文件时,默认处于命令模式。(如输入 vim test.py 后进入命令模式)可以对文件内容进行复制、粘贴、替换、删除等操作。
2、Vim的输入模式
在输入模式下,Vim 可以对文件执行写操作,使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令 |
3、Vim 的编辑模式
编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。指令执行后 Vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可。
注意:对于新手来说,经常不知道自己处于什么模式。可以按一次 Esc 键返回命令模式。如果你多按几次 Esc 键后听到"嘀————"的声音,则已经处于命令模式了。
三、VIM基本操作
1、vim打开文件: (vim + 文件名)
Vi 使用的选项 | 说 明 |
---|---|
vim filename | 打开或新建一个文件,并将光标置于第一行的首部 |
vim -r filename | 恢复上次 vim 打开时崩溃的文件 |
vim -R filename | 把指定的文件以只读方式放入 Vim 编辑器中 |
vim + filename | 打开文件,并将光标置于最后一行的首部 |
vi +n filename | 打开文件,并将光标置于第 n 行的首部 |
vi +/pattern filename | 打幵文件,并将光标置于第一个与 pattern 匹配的位置 |
vi -c command filename | 在对文件进行编辑前,先执行指定的命令 |
刚打开文件时 Vim 处于命令模式,此时文件的下方会显示文件的一些信息,包括文件的总行数和字符数,以及当前光标所在的位置等,此时可以使用插入命令进入输入模式对文件进行编辑。
2、输入模式下,进行编辑文本:
从命令模式进入输入模式进行编辑,可以按下 I、i、O、o、A、a 等键来完成,使用不同的键,光标所处的位置不同。
3、命令模式下,进行查找文本
快捷键 | 功能描述 |
---|---|
/abc | 从光标所在位置向前查找字符串 abc |
/^abc | 查找以 abc 为行首的行 |
/abc$ | 查找以 abc 为行尾的行 |
?abc | 从光标所在为主向后查找字符串 abc |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指定 |
在查找过程中需要注意的是,要查找的字符串是严格区分大小写的。如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"。
常见的特殊符号有 \、*、?、$ 等 ,要查找字符串 "10$",则需要在命令模式中输入 "/10\$"。
4、在编辑模式下,替换字符。
快捷键 | 功能描述 |
---|---|
r | 替换光标所在位置的字符 |
R | 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束 |
:s/a1/a2/g | 将当前光标所在行中的所有 a1 用 a2 替换 |
:n1,n2s/a1/a2/g | 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换 |
:g/a1/a2/g | 将文件中所有的 a1 都用 a2 替换 |
要将某文件中所有的 "root" 替换为 "liudehua":
:1, $s/root/liudehua/g或 :%s/root/liudehua/g
命令变成
:10,20 s/root/liudehua/g
,则只替换从第 10 行到第 20 行的 "root"
5、 在命令模式下,删除文本。
快捷键 | 功能描述 |
---|---|
x | 删除光标所在位置的字符 |
dd | 删除光标所在行 |
ndd | 删除当前行(包括此行)后 n 行文本 |
dG | 删除光标所在行一直到文件末尾的所有内容 |
D | 删除光标位置到行尾的内容 |
:a1,a2d | 函数从 a1 行到 a2 行的文本内容 |
被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 "p" 键,就可以将刚才删除的内容又粘贴到此处。
6、命令模式下,复制文本。
快捷键 | 功能描述 |
---|---|
p | 将剪贴板中的内容复制到光标后 |
P | 将剪贴板中的内容复制到光标前 |
yy | 将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行 |
yw | 将光标位置的单词复制到剪贴板 |
7、两行合并成一行,在命令模式下按“J”,如果不小心误删除了文件内容,则可以通过 "u" 键来撤销刚才执行的命令。如果要撤销刚才的多次操作,可以多按几次 "u" 键。
8、在编辑模式下,保存并退出。
命令 | 功能描述 |
---|---|
:wq | 保存并退出 Vim 编辑器 |
:wq! | 保存并强制退出 Vim 编辑器 |
:q | 不保存就退出 Vim 编辑器 |
:q! | 不保存,且强制退出 Vim 编辑器 |
:w | 保存但是不退出 Vim 编辑器 |
:w! | 强制保存文本 |
:w filename | 另存到 filename 文件 |
x! | 保存文本,并退出 Vim 编辑器,更通用的一个 vim 命令 |
ZZ | 直接退出 Vim 编辑器 |
"w!" 和 "wq!" 等类似的指令,通常用于对文件没有写权限的时候,但如果是文件的所有者或者 root 用户,就可以强制执行。