简介
vim是一款针对Linux和其他类Unix操作系统的文本编辑器。它是Vi编辑器的升级版本,具有丰富的功能和强大的扩展性。vim有三种基本模式:命令模式、插入模式和可视模式。
- 命令模式:用户可以使用各种命令移动光标和进行编辑操作,如删除、复制、粘贴等。
- 插入模式:用户可以在当前位置插入文本。
- 可视模式:可以使得用户可以非常容易地选择文本块并进行处理。
文章目录如下
1. 参数介绍
2. 插入模式
3. 命令模式
3.1. 查看文件
3.2. 复制粘贴
3.3. 删除字符
3.4. 撤销恢复
3.5. 保存文件
4. 末行模式
4.1. 保存文件
4.1. 批量注释代码
4.2. 批量修改字符
4.3. 按关键字删除行
4.4. 搜索某个字符
4.5. 设置终端显示
5. 可视模式
5.1. 批量注释
5.2. 批量删除
1. 参数介绍
vim 一般直接对文件进行操作
vim 文件名
它本身也自带参数,常见用法如下:
-d:diff模式,对比两个文件的差异性
# vim -d file1 file2
-D:调试模式
# vim -D file
-P:打开多个标签
# vim -P file1 file2 file3
-O:打开多个文件窗口
# vim -O file1 file2 file3,使用末行模式进行文件间切换(:1n 切换下一个文件 或者 Ctrl + ww,:1N 切换上一个文件)
+ :启动后调到末行
# vim + file
+[n]:n 表示数字,直接进入n行
# vim +3 file 启动后光标调到第3行
-r:恢复上次异常退出时的编辑进度。
-o/-O:垂直/水平分割屏幕并打开多个文件。
-r:以只读模式打开文件。
-R:以只读模式打开文件,禁用自动保存和修改。
-g/-f:开启图形模式/禁用图形模式。
2. 插入模式
插入模式是指在编辑器中可以输入和编辑文本的模式。在插入模式下,可以通过键盘输入文本内容,并且编辑器会立即显示你输入的内容。
使用vim打开文件时属于可视模式,这个模式下是无法写入字符的
需要进入插入模式时,直接按 i 键即可在光标位置插入
进入插入模式后便不再有命令,所有输出的字符都将显示到文件中。
退出插入模式按 Esc 键。
除了使用 i 命令插入,还有一些其他常用命令
“i” 键:在当前光标处进入插入模式
“I” 键:在当前行的开头进入插入模式
“a” 键:在当前光标后1个位置进入插入模式
“A” 键:在当前行的末尾进入插入模式
“o” 键:在当前行的下一行插入新行,并进入插入模式
“O” 键:在当前行的上一行插入新行,并进入插入模式
“s” 键:删除当前光标所在的单个字符,并进入插入模式
“S” 键:删除当前行的所有字符,并进入插入模式
3. 命令模式
命令模式就是在刚打开文件时,或按 Esc 键后的模式,在该模式下可以使用命令进行查看文件,删除文件,复制粘贴文件等。
3.1. 查看文件
翻页查看文件
Ctrl + f :向下翻页
Ctrl + b :向上翻页
移动光标到n行
gg:移动到文件最顶端
H :移动到当前页最顶端
G :移动到文件最底端
L :移动到当前页最底端
3G:移动到第3行,3可以设置为任意数字
移动光标在当前行的位置
^ :移动到当前行第1列
$ :移动到当前行最后1列
w :移动到下一段字母开头
e :移动到下一段字母结尾
3.2. 复制粘贴
复制某行
yy :复制当前行
Y :复制当前行
y2y:向下复制2行
yG :复制当前行到最后1行
ygg:复制当前行到第1行
y2g:复制当前行到第2行
粘贴某行
p :将复制的行粘贴到光标下面一行
P :将复制的行粘贴到光标上面一行
3.3. 删除字符
dd: 删除当前行
D : 删除当前行光标到末尾
dG: 删除光标行到最后1行
dgg:删除光标行到第1行
d↓: 删除光标行向下2行
d↑: 删除光标行向上2行
d5↓:删除光标行向下5行
d5↑:删除光标行向上5行
3.4. 撤销恢复
u :撤销上一次命令
Ctrl + r:恢复上一次命令
3.5. 保存文件
ZZ: 保存并退出文件
ZQ: 不保存并退出文件
4. 末行模式
末行模式允许执行各种命令、搜索文本、保存文件以及设置编辑器选项等操作。在末行模式下,可以在编辑器底部的命令行输入命令,并按回车键执行。
末行模式有3种命令
: 模式:在该模式下执行命令
/ 模式:在该模式下向下搜索字符串
? 模式:在该模式上向下搜索字符串
4.1. 保存文件
:w # 保存文件
:q # 退出文件
:q! # 强制退出文件(不保存)
:wq # 保存并退出文件
:wq! # 强制保存并退出文件
4.1. 批量注释代码
【案例一】注释整个文件
:%s/^/#/
- : 进入末行模式
- % 表示全部行
- s 表示替换某个字符
- / 这个命令的分隔符
- ^ 表示行首
- # 自定义的符号,shell 使用#注释
【案例二】仅注释1~3行
:1,3s/^/#/
- 1 表示开始行
- 3 表示结束行
【案例三】取消全部注释
:%s/^#//
- 将全部以#开头的#替换为空
【案例四】取消10~20行注释
:10,20s/^#//
- 将全部以#开头的#替换为空
4.2. 批量修改字符
【案例一】将所有b替换为BBB
:%s/b/BBB/g
- : 进入末行模式
- % 表示全部行
- s 表示替换
- / 表示这行命令的分割
- b 表示被替换的字符
- BBB 表示替换成该字符
- g 表示全部,如果不用g则表示第1个
【案例二】将所有行第1个b替换为BBB
:%s/b/BBB/
【案例三】将第10~20行所有b替换为BBB
:10,20s/b/BBB/g
【案例四】在所有行的行首添加字符BBB
:%s/^/BBB/
【案例五】在所有行的行尾添加符号 ;
:%s/$/;/
注意:分隔符 / 是可修改的
将 /home/yt 修改为 /home/root
:%s#/home/yt#/home/root#g
- 将 / 符号修改为 #,也可以修改成其他的,比如 @
4.3. 按关键字删除行
删除全部行
:%d
删除5~10行
:5,10d
删除包含 abc 的行
:g/abc/d
删除以abc开头的行
:g/^abc/d
删除以abc结尾的行
:g/abc$/d
删除空行
:g/^\n/d
4.4. 搜索某个字符
【案例一】向下搜索ab字符
/ab
【案例二】向上搜索ab字符
?ab
【案例三】向下搜索ab和ac的字符
/ab\|ac
- 向上搜索也是同理
【案例四】搜寻关键字
“n” 键 # 向下搜寻关键字
“N” 键 # 向上搜寻关键字
4.5. 设置终端显示
设置行号
:set nu # 显示行号
:set nonu # 取消行号
设置关键字高亮
:set hls # 关键字显示高亮
:noh # 关键字取消高亮
拼写检查
:set spell # 开启拼写检查
:set nospell # 关闭拼写检查
设置文件格式
:set fileformat=unix # 将文本格式设置为Linux格式 (windows 中编写的脚本在 Linux 执行时,可能出现换行符不匹配等问题,可以使用此设置)
设置缩进
:set expandtab tabstop=4 # 将制表符设置为4个空格
:set noexpandtab # 禁止将制表符转换为空格。
设置对齐
set textwidth=80 # 设置文本宽度为80个字符,在达到该宽度时自动换行。
set formatoptions+=a # 启用自动对齐,对齐方式取决于文件类型和格式选项。
set formatoptions-=cro # 禁用换行操作符的自动换行。
5. 可视模式
可视模式可以选择一段连续的文本并对其进行复制、剪切、粘贴等操作,从而提供了更精确和灵活的文本编辑能力。
- Ctrl + v 键进入块可视模式,键盘 "上" 、"下" 键选择
5.1. 批量注释
1、Ctrl + v 光标行进入可视块
2、使用上下键选中需要注释的行
3、按下命令 "I键",这时候进入编辑模式
4、按下命令 "#键"
5、按 "Esc键" 即可注释
第4步按下 #键,也可以是其他字符,可输入多个。比如第4步改为abc,那么在选中行哪里就会添加abc
5.2. 批量删除
1、Ctrl + v 光标行进入可视块
2、使用上下左右键选中需要删除的行、字符
3、按下命令 "d键",删除
同样的方法,我们可以选择被注释的行,选中首行的#符号,按 "d键" 删除