目录
1. 语法
vim [文件]
vim [参数] [文件]
1.1. 常用参数
-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
+[num]:num 表示数字 # vim +3 file 启动后光标调到第3行
2. 常用模式
2.1. 命令模式
按 esc键 进入命令模式
********************* 进入编辑模式 *********************
i: 光标前开始插入
I: 光标所在行第一列开始插入
A: 光标所在行最后一列开始插入
o: 光标所在下一行开始插入
O: 光标所在上一行开始插入
*********************** 光标移动 ***********************
gg:移动到文本第 1 行
G :移动到文本最后 1 行
3G:移动到第 3 行,3可以为任意行
H :移动到当前屏幕第 1 行
L :移动到当前屏幕最后 1 行
^ :移动到当前行第 1 列
$ :移动到当前行最后 1 列
w :移动到下一段字母开头
e :移动到下一段字母结尾
Ctrl + f :向下翻页
Ctrl + b :向上翻页
*********************** 删除命令 ***********************
dd: 删除当前行
D : 删除当前行光标到末尾
dG: 删除光标行到最后 1 行
dgg:删除光标行到第 1 行
d5↓:删除光标行向下 5 行
d5↑:删除光标行向上 5 行
d↓: 删除光标行向下 2 行
d↑: 删除光标行向上 2 行
*********************** 复制粘贴 ***********************
yy: 复制当前行
Y : 复制当前行
y2y:向下复制 2 行
yG: 复制当前行到最后 1 行
ygg:复制当前行到第 1 行
y2g:复制当前行到第 2 行
p : 将复制的行粘贴到光标下面一行
P : 将复制的行粘贴到光标上面一行
*********************** 退出文件 ***********************
ZZ: 保存并退出文件
ZQ: 不保存并退出文件
*********************** 撤销恢复 ***********************
u : 撤销上一次命令
Ctrl + r:恢复上一次命令
2.2. 末行模式
注意:需要先进入命令模式后才能进入末行模式
esc键 + :
esc键 + /
esc键 + ?
*********************** 查找关键字 ***********************
/string # 光标之下查找 string,需要配合命令 n/N 使用
?string # 光标之上查找 string,需要配合命令 n/N 使用
命令 n # 向下搜寻关键字
命令 N # 向上搜寻关键字
*********************** 替换关键字 ***********************
:%s/string1/string2/g # 将文本中所有 string1 替换为 string2
:2,5s/string1/string2/g # 将 2-5 行中的 string1 替换为 string2
:2,5s/string1//g # 将 2-5 行中的 string1 替换为空
*********************** 删除关键字 ***********************
:g/string/d # 删除文本中含有 string 的行
:5g/string/d # 删除第 5 行含有 string 的行
:5,9g/string/d # 删除 5-9 行含有 string 的行
:g/^\n/d # 删除空行
*********************** set 设置 ************************
:set nu # 显示行号
:set nonu # 取消行号
:set hls # 关键字显示高亮
:noh # 关键字取消高亮
:set spell # 开启拼写检查
:set nospell # 关闭拼写检查
:set fileformat=unix # 将文本格式设置为Linux格式 (windows 中编写的脚本在 Linux 执行时,可能出现换行符不匹配等问题,可以使用此设置)
*********************** 保存文件 ************************
:w # 保存编辑好的文件
:q # 退出文件
:q! # 强制退出文件(不保存)
:wq # 保存并退出文件
:wq! # 强制保存并退出文件
3. 批量注释
3.1. 指定行添加注释
:1,3s/^/#/g # 1-3 行添加符号 # (表示注释)
:1,3s#^#//#g # 1-3 行添加符号 // (表示注释)
3.2. 注释整个文本
:%s/^/#/g # 所有行添加符号 # (表示注释)
:%s#^#//#g # 所有行添加符号 // (表示注释)
3.3. 选中行添加注释
通过可视块进行注释(光标置于首列),分以下几步操作:
1、Ctrl + v 光标行进入可视块
2、使用上下键选中需要注释的行
3、按下命令键 I,这时候进入编辑模式,再次按下 #键
4、按 esc键
4. 批量取消注释
4.1. 指定行取消注释
:1,3s/^#//g # 将 1-3 行以 # 开头的 # 替换为空
:1,3s#^//##g # 将 1-3 行以 // 开头的 // 替换为空
4.2. 取消整个文本注释
:%s/^#//g # 将全部行以 # 开头的 # 替换为空
:%s#^//##g # 将全部行以 // 开头的 // 替换为空
4.3. 选中行取消注释
通过可视块进行注释(光标置于首列),分以下几步操作:
1、Ctrl + v 光标行进入可视块
2、使用上下键选中需要取消注释的行
3、按下命令键 d,表示删除(将第一列的 # 删除即可)