Vi/Vim是Linux自带的一个功能非常强大的文本编辑器,可以用来创建,编辑和显示文本文件。
Vi/Vim工作模式
- 命令模式:使用
vi file_name
或vim file_name
进入后的模式,此模式下不可编辑。 - 插入模式:在命令模式下使用
i
,a
,o
指令,进入插入模式,可以编辑文件。 - 编辑模式:在命令模式下使用
:
指令,进入编辑模式,可以输入vim编辑器指令。
工作模式如下图所示:
插入模式
在进入命令模式后,可以通过i
,a
,o
任意一个命令进入编辑模式。但是,这三个命令又有所不同。
命令 | 作用 |
---|---|
a | 在光标后附加文本 |
A | 在本行行末附加文本 |
i | 在光标前附加文本 |
I | 在本行开始处附加文本 |
o | 另起一行插入 |
O | 在光标上启一行插入 |
如下图所示,在输入O之后,光标出现在了上一行。
定位命令
- set number:设置行号(set nu)
-
set nonu:取消行号
在vim中没有展示行号,我们在编辑的时候,可以通过使用上述两个指令来展示和取消行号。
命令 | 作用 |
---|---|
h, 方向左 | 左移一个字符 |
j,方向下 | 向下移动一个字符 |
k,方向上 | 向上移动一个字符 |
l,方向右 | 右移动一个字符 |
$ | 移动到行尾 |
0 | 移到行首 |
H | 移至屏幕上端 |
M | 移至屏幕中央 |
L | 移至屏幕下端 |
删除命令
- x 删除光标所在位置字符
- nx 删除光标位置后n个字符
- dd 删除所在行
- ndd 删除n行
- dG 删除从光标所在位置到文件末尾的内容
- D 删除光标所在处到行尾
- :n1, n2d 删除指定范围的行,从n1到n2。
复制和粘贴
命令 | 作用 |
---|---|
yy, Y | 复制当前行 |
nyy, nY | 复制当前行一下n行 |
dd | 剪切当前行 |
ndd | 剪切当前行以下n行 |
p, P | 粘贴在当前光标所在行的上一行或下一行 |
替换,搜索
命令 | 作用 |
---|---|
r | 取代光标所在处字符 |
R | 从光标所在处开始替换字符,ESC结束 |
u | 取消上一步操作 |
/string | 向前搜索指定字符,如果想要忽略大小写使用:set ic |
n | 搜索指定字符串的下一个出现位置 |
:%s/old/new/g | 全文替换指定字符串 |
:n1,n2s/old/new/g | 在一定范围内替换指定字符串 |