1 基础
《Linux就是这个范》里有个脑图很好记。
VIM cheat sheet
https://vim.rtorr.com/lang/zh_cn
https://vimsheet.com/
2 一般模式
2.1 移动光标
移动单个字符
h
j
k
l
移动单词
w下一单词第一个字符
W下一长单词第一个字符
e下一单词最后一个字符
E下一长单词最后一个字符
b前一单词第一个字符
B前一长单词第一个字符
移动行
0到行首
$到行尾
行号G跳到指定行
G跳到最后一行
2j 向下移动2行
3k 向上移动3行
移动句
(到句首
)到句尾
移动段
{到句首
}到句尾
搜索
/表达式 搜索下一个匹配表达式的字符串
n 向前重复搜索
N 向后重复搜索
搜索之后字符串高亮怎么取消:
命令模式下,输入:noh // nohighlight
2.2 编辑控制
通用
J 将下一行接到当前行的行末
. 重复上一命令
u 恢复上一命令
删除
x 删除当前字符
X 向前删除字符
dd 删除当前行
dw 删除当前单词
d) 删除到当前句尾
d} 删除到当前段尾
d3w 删除光标后的3个单词
d2j 删除当前行及下2行
复制
yy 复制一行
y) y} y3w y2j 复制操作方法与删除类似
粘贴
p 粘贴到光标之后
P 粘贴到光标之前
3 插入模式
3.1 插入
i 在光标字符前插入
I 插到当前行到行首
a 在光标字符后插入
A 文本追加到当前行到行末
o 在当前行下面生成一空行并插入
O 在当前行上面生成一空行
3.2 更改
cc 以新行替换当前行
4 命令模式
s/表达式/替换/ 替换当前行的第一个表达式
s/表达式/替换/g 替换当前行的所有匹配表达式
%s/表达式/替换/g 替换文件中的所有匹配表达式
%s/表达式/替换/gc 替换文件中的所有匹配表达式,每次替换前确认
5 对比文件
这里列几个vimdiff 的操作命令:
- 打开两个文件:
vim -d file1 file2
或
vimdiff file1 file2
-
如果已经打开了文件file1,再打开另一个文件file2进行比较:
:vert diffsplit file2
如果没有用vert命令,diffsplit则会分上下两个窗口。 -
如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。
分别在两个窗口里面输入命令:
:diffthis -
如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新:
:diffupdate -
定位到不同点:
[c 跳到前一个不同点
]c 跳到后一个不同点 -
在窗口间跳转:
ctrl+w w 跳到下一个窗口 -
合并文档:
d+p 将差异点的当前文档内容应用到另一文档(diff put)
d+o 将差异点的另一文档的内容拷贝到当前文档(diff get)
来源:CSDN
作者:iotisan
链接:https://blog.csdn.net/iotisan/article/details/104157863