编辑
2024-09-06
Linux
0
请注意,本文编写于 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命令解释

shell
[root@CentOS8 ~]# man vim # vim - Vi improved, a programmer's text editor # vim命令是一个文本编辑器,vi命令的增强版 # vim语法格式 # vim [options] [file ..]

1.2 vim命令应用

shell
# 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删除光标所在行的文本
6dd6是数字位,6dd表示删除光标所在行往下共6行的文本
d0或d^当前光标位置开始(不包含光标位),删除到本行行首字符的文本
d$当前光标位置开始(包含光标位),删除到本行行尾字符的文本
dG当前光标所在行开始(包含),向下删除全部文本
dgg当前光标所在行开始(包含),向上删除全部文本
G光标移动到最后一行文本行首字符
gg光标移动到第一行文本行首字符
6gg6是数字位,光标移动到第6行文本行首字符
p光标所在行,另起下一行粘贴复制的文本
P光标所在行,另起上一行粘贴复制的文本
u撤销修改
Ctrl键+r键反向撤销修改
x当前光标位置开始(包含光标位),删除后面一个字符
6x6是数字位,当前光标位置开始(包含光标位),删除后面6个字符
X当前光标位置开始(不包含光标位),删除前面一个字符
6X6是数字位,当前光标位置开始(不包含光标位),删除前面6个字符
yy复制光标所在行
6yy6是数字位,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命令拓展应用

shell
# 永久设置文本行号显示 [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 许可协议。转载请注明出处!