一、Vim简介

Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNlX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。 Vim没有菜单,只有命令。

  • 最小安装没有vim编辑器,执行yum -y install vim安装

二、Vim工作模式

![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200915629-8401a6dd-a687-436a-94bf-79f625149c1a.png#align=left&display=inline&height=531&margin=[object Object]&name=image.png&originHeight=531&originWidth=787&size=75554&status=done&style=none&width=787)

  • 命令模式:VIM 的默认模式,可以用于移动游标查看内容;

![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200915623-45a16df8-52a6-4968-aa6c-423cace8ca87.png#align=left&display=inline&height=30&margin=[object Object]&name=image.png&originHeight=30&originWidth=1244&size=4026&status=done&style=none&width=1244) ![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200915617-dfd07cb7-8f06-4a85-8d4f-d77bd1be789a.png#align=left&display=inline&height=29&margin=[object Object]&name=image.png&originHeight=29&originWidth=1242&size=2076&status=done&style=none&width=1242)

  • 编辑模式:按下 "i" 等按键之后进入,可以对文本进行输入、退格等操作;

![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200915617-75ffd70d-80d6-4ead-8aef-88f3a11a03d5.png#align=left&display=inline&height=27&margin=[object Object]&name=image.png&originHeight=27&originWidth=1241&size=2783&status=done&style=none&width=1241)

  • 底行命令模式:按下 ":" 按键之后进入,用于保存退出等操作。

![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200915623-19a087dd-4851-415f-af79-c6ff54210b32.png#align=left&display=inline&height=35&margin=[object Object]&name=image.png&originHeight=35&originWidth=1251&size=1466&status=done&style=none&width=1251) ![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200915626-0728ab4d-d0f3-4b88-bab2-9889768f21bb.png#align=left&display=inline&height=35&margin=[object Object]&name=image.png&originHeight=35&originWidth=1254&size=1507&status=done&style=none&width=1254)

三、翻页命令

Ctrl+F下翻整页
Ctrl+B上翻整页
Ctrl+D下翻半页
Ctrl+U上翻半页

四、插入命令

命令作用
a在光标所在字符后插入
A在光标所在行尾插入
i在光标所在字符前插入
I在光标所在行行首插入
o在光标下插入新行
O在光标上插入新行

五、定位跳转命令

命令作用
:set nu设置行号
:set nonu取消行号
gg到第一行
G到最后一行
nG到第n行
:n到第n行
$移至行尾
^移至行首
w移动到下一个单词

六、删除命令

命令作用
x删除光标所在字符处
nx删除光标所在处后n个字符
dd删除光标所在行到文件末尾内容
dG删除光标所在行到文件末尾内容
D删除光标所在处到行尾内容
:n1,n2d删除指定范围的行

七、复制和剪切命令

命令作用
yy复制当前行
nyy复制当前行以下n行
dd剪切当前行
ndd剪切当前行以下n行
p、P粘贴在当前光标所在行下或行上

八、替换和撤销命令

命令作用
r取代光标所在处字符
R从光标所在处开始替换字符,按esc结束
u取消上一步操作
U取消所有操作
Ctrl+R对撤销操作恢复

九、搜索和搜索替换命令

命令作用
/string搜索指定字符串(搜索时忽略大小写:set ic )
n搜索指定字符串的下一个出现位置
N搜索指定字符串的上一个出现位置
:%s/old/new/g全文替换指定字符串
:n1,n2s/old/new/g在一定范围内替换指定字符串
:noh取消查找高亮

十、保存和退出命令

命令作用
:w保存修改
:w new_dilename另存为指定文件
:wq保存修改并退出
ZZ快捷键,保存修改并退出
:q!不保存修改退出
:e!撤销打开文件后编辑的内容

十一、其他常用技巧

1.vim文件冲突

![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200888836-35924219-13c1-4a2c-9658-8d471511cc62.png#align=left&display=inline&height=296&margin=[object Object]&name=image.png&originHeight=296&originWidth=1056&size=51767&status=done&style=none&width=1056)

  • 说明异常退出,上次编辑文件后没保存文件就被关闭了。此时可以直接输出D,删除交换文件直接进入。或者直接删除.Dockerfile.swp文件。

2.在指令模式下执行命令

:!命令 ,如:!date将日期显示在vim底部,:!ls列出当前目录 ![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200888841-3b458fb1-edcf-4f0f-9382-a98080fba6da.png#align=left&display=inline&height=135&margin=[object Object]&name=image.png&originHeight=135&originWidth=444&size=10952&status=done&style=none&width=444)

3.光标下方导入命令执行结果:

  • :r!命令

![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200888840-16dac096-0cbe-4a7a-9677-b26db9c9c89b.png#align=left&display=inline&height=57&margin=[object Object]&name=image.png&originHeight=57&originWidth=491&size=5317&status=done&style=none&width=491)

4.可视块操作:

  • 批量添加注释

按 Ctrl + v 进入列选择模式,上下键选择修改的行,然后按 I,进入列插入状态,输入#,再按下 ESC,你会看到,所有行之前都出现了一个#:

  • 批量删除注释

按 Ctrl + v 进入列选择模式,上下键选择修改的行,然后按del键,所有行之前的#都删除: ![image.png](https://cdn.nlark.com/yuque/0/2021/png/2308212/1613200888923-8adb2626-f4e9-4659-9241-82bf361b8cc4.png#align=left&display=inline&height=136&margin=[object Object]&name=image.png&originHeight=136&originWidth=273&size=6173&status=done&style=none&width=273)

5.替换

  • 把空格替换为换行

:% s/ /\r/g

  • 把空行删除

:g/^$/d