请注意,本文编写于 437 天前,最后修改于 436 天前,其中某些信息可能已经过时。
目录
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
许可协议。转载请注明出处!