请注意,本文编写于 238 天前,最后修改于 238 天前,其中某些信息可能已经过时。
目录
vim基础
1.1 vim命令解释
1.2 vim命令应用
1.3 vim命令拓展
1.3.1 命令行模式
1.3.2 文本编辑模式
1.3.3 底行模式
1.3.4 可视化模式
1.4 vim命令拓展应用
vim基础
- vim命令解释
- vim命令应用
- vim命令拓展
- vim命令拓展应用
1.1 vim命令解释
[root@CentOS8 ~]# man vim
# vim - Vi improved, a programmer's text editor
# vim命令是一个文本编辑器,vi命令的增强版
# vim语法格式
# vim [options] [file ..]
1.2 vim命令应用
# vim命令编辑已存在的文本文件/etc/hosts
[root@CentOS8 ~]# vim /etc/hosts
--------------------
# vim命令编辑当前目录下的文件newfile,如果文件不存在,将新建并编辑文件
[root@CentOS8 ~]# vim newfile
[root@CentOS8 ~]# ll
-rw-r--r--. 1 root root 20 Sep 3 20:09 newfile
# 备注:ll命令是ls -l 命令的别名
[root@CentOS8 ~]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
1.3 vim命令拓展
1.3.1 命令行模式
常用按键 | 说明 |
---|
方向键上键或k键 | 向上移动光标 |
方向键下键或j键 | 向下移动光标 |
方向键左键或h键 | 向左移动光标 |
方向键右键或l键 | 向右移动光标 |
Home | 光标移动到当前行的行首字符 |
End | 光标移动到当前行的行尾字符 |
PageUp | 向上翻页 |
PageDown | 向下翻页 |
0或^ | 光标移动到当前行的行首字符 |
$ | 光标移动到当前行的行尾字符 |
/pattern | 搜索模式,关键字匹配 |
n | 匹配关键字下一个结果 |
N | 匹配关键字上一个结果 |
dd | 删除光标所在行的文本 |
6dd | 6是数字位,6dd表示删除光标所在行往下共6行的文本 |
d0或d^ | 当前光标位置开始(不包含光标位),删除到本行行首字符的文本 |
d$ | 当前光标位置开始(包含光标位),删除到本行行尾字符的文本 |
dG | 当前光标所在行开始(包含),向下删除全部文本 |
dgg | 当前光标所在行开始(包含),向上删除全部文本 |
G | 光标移动到最后一行文本行首字符 |
gg | 光标移动到第一行文本行首字符 |
6gg | 6是数字位,光标移动到第6行文本行首字符 |
p | 光标所在行,另起下一行粘贴复制的文本 |
P | 光标所在行,另起上一行粘贴复制的文本 |
u | 撤销修改 |
Ctrl键+r键 | 反向撤销修改 |
x | 当前光标位置开始(包含光标位),删除后面一个字符 |
6x | 6是数字位,当前光标位置开始(包含光标位),删除后面6个字符 |
X | 当前光标位置开始(不包含光标位),删除前面一个字符 |
6X | 6是数字位,当前光标位置开始(不包含光标位),删除前面6个字符 |
yy | 复制光标所在行 |
6yy | 6是数字位,6yy表示复制光标所在行往下共6行的文本 |
1.3.2 文本编辑模式
常用按键 | 说明 |
---|
Esc | 由文本编辑模式退回到命令行模式 |
a | 当前光标位置,后移一位,进入文本编辑模式 |
A | 当前行的行尾字符,后移一位,进入文本编辑模式 |
i | 当前光标位置,进入文本编辑模式 |
I | 当前行的行首字符,进入文本编辑模式 |
o | 当前光标,另起下一行,进入文本编辑模式 |
O | 当前光标,另起上一行,进入文本编辑模式 |
S | 删除光标所在行文本,并进入文本编辑模式 |
1.3.3 底行模式
常用按键 | 说明 |
---|
Esc | 退回到命令行模式 |
# | 光标所处的单词(空格键分隔),全文搜索,往上匹配单词 |
* | 光标所处的单词(空格键分隔),全文搜索,往下匹配单词 |
:e! | 放弃此次的文本修改,并重新载入上一次保存状态的文本 |
:q | 退出文件,如有修改,会提示选择是否保存,或强制退出 |
:q! | 强制退出文件 |
:w | 保存文件 |
:wq | 保存并退出文件 |
:wq! | 强制保存并退出文件 |
:x | 文件如果没有修改,等价于效果;文件如果有修改,等价于效果 |
:/pattern | 搜索模式,关键字匹配 |
:%s/STRING/NEWSTRING/g | 全文搜索并替换字符串,%s表示全文搜索,/表示自定义分隔符,STRING表示源字符串,NEWSTRING表示目标字符串,/g表示全部替换成目标字符串 |
:%s/STRING/NEWSTRING/gc | 全文搜索并替换字符串,%s表示全文搜索,/表示自定义分隔符,STRING表示源字符串,NEWSTRING表示目标字符串,/g表示全部替换成目标字符串,c表示交互式询问是否替换 |
:%s#/STRING#NEWSTRING#g | 全文搜索并替换含转义字符的字符串,%s表示全文搜索,#表示自定义分隔符,/STRING表示含/的源字符串,/NEWSTRING表示含/的目标字符串,#g表示全部替换成含/的目标字符串 |
:%s/\/STRING/\/NEWSTRING/g | 全文搜索并替换含转义字符的字符串,%s表示全文搜索,/表示自定义分隔符,\/STRING表示含/的源字符串,\/NEWSTRING表示含/的目标字符串,/g表示全部替换成含/的目标字符串。备注:\为转义字符 |
:6s/STRING/NEWSTRING/g | 第6行搜索并替换字符串,6s表示第6行搜索,/表示自定义分隔符,STRING表示源字符串,NEWSTRING表示目标字符串,/g表示全部替换成目标字符串 |
:set hlsearch | 匹配的关键字结果,高亮显示 |
:set ignorecase | 忽略大小写的关键字查找 |
:set list | 显示控制符 |
:set nohlsearch | 匹配的关键字结果,取消高亮显示 |
:set noignorecase | 不忽略大小写的关键字查找 |
:set nu | 显示文本行号 |
:set paste | 文本来自外部复制源,为解决粘贴过程中可能出现的乱序或乱码问题。在文本编辑模式时使用,开启粘贴模式,确保粘贴文本和源格式保持一致 |
:set nopaste | 文本编辑模式时使用,取消粘贴模式 |
:noh | 匹配的关键字结果,取消高亮显示 |
:1,5 w /tmp/file1 | 地址定位作用,第1行到第5行内容,保存到/tmp/file1文件中,备注:d表示删除,r表示读取,w表示写入 |
1.3.4 可视化模式
常用按键 | 说明 |
---|
Esc | 退出可视化模式 |
Ctrl键+v键 | 使用可视块,按方向键选择多行,进入文本编辑模式,添加的文本,显示在可视块首行,Esc退出可视块,选择的多行都快速完成相同文本的添加 |
V | 使用可视行,按方向键选择多行,进行下一步操作,如:y键复制,p键粘贴 |
1.4 vim命令拓展应用
# 永久设置文本行号显示
[root@CentOS8 ~]# echo 'set number' >> /etc/vimrc
--------------------
# 底行模式,地址定位作用,光标所在行下面,读取/tmp/file1的内容
:r /tmp/file1
--------------------
# 底行模式,地址定位作用,删掉文本的第1行到第6行
:1,6 d
--------------------
# 底行模式,地址定位作用,文本第6行下面,读取命令hostname的结果
:6r !hostname
--------------------
# 底行模式,地址定位作用,命令hostname的结果,替换文本第6行内容
:6! hostname
本文作者:宋书廷
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!