vim 使用指南
1. 基本的鼠标操作
h:逐字符左移;
l:逐字符右移;
k:上移一行;j:下移移行;
ctrl + f:向前翻页; ctrl + d:向前翻半页
ctrl + b:向后翻页; ctrl + u:向后翻半页
gg:返回到第一行;
ctrl + g:至最后一行
2. 文本编辑
r:替换一个字符;
R:进入替换模式;
d:删除一个字符 ; dd: 删除当前行;4dd:删除当前行开始的4行。
u:撤销上一次操作;
dw:删除一个字
d^: 删除光标所在处到行首的字符
d$: 删除光标所在处到行尾的字符
d1g:删除当前行到第一行之间的所有行
dg:删除当前行到最后一行之间的所有行
y:选中文本后,敲y,复制文本
p:粘贴文本至光标之后
P:粘贴文本至光标之前
o:下方插入一行
O:上放插入一行
i:插入点在光标之前
a:插入点在光标之后
e: 刷新文件。比如打开一个仿真log,但仿真还在运行持续写入log,可通过:e命令载入新产生的log内容。
3. 文本选择 (v模式)
v:行选中模式,通过hjkl四个键选取文本
先敲v,然后敲入$,可选中光标所在处到行尾间的所有字符
先敲v,然后敲入^,可选中光标所在处到行首间的所有字符
先敲v,然后敲入g,可选中光标所在处到最后一行间的所有行
先敲v,然后敲入1g,可选中光标所在处到第一行间的所有行
ctrl +v:列选中模式,通过hjkl四个键选取文本
在文本选中后,可对选中文本进行搜索,插入,删除等操作。
4. 文本搜索
ctrl + # :启动对光标处的字的搜索。等价于 /\<wor\> 命令;
在ctrl + #命令的基础上,若有命中多个字,则:
3.1)按n,向上搜索;按N,向下搜索。
3.2)v + N:选中当前光标按向下搜索找到的第一个字之间的所有字符;多次按N,则一一选中。
或非编辑模式下敲/以进入搜索模式,然后输入需要搜索的字符,可用正则表达式。
如 /^\s* 表示搜索行首的空格
5. 匹配替换
非编辑模式下,敲入:进入命令模式。如:
:%s/搜索字符的表达式/替换字符表达式/gc
s表示按表达式搜索,若命中,则用替换字符表达式所描述的字符进行替换
g表示全文搜索;c表示替换需要手动确认,此时若按a,则全文自动替换,不再手动确认
替换的几种技巧:
5.1 仅对选中的行进行替换
使用v模式选中文本,然后敲:进入命令模式。命令行中会自动出现以下字符:
:'<,'>
然后敲入替换命令,如:
:'<,'>s/搜索字符的表达式/替换字符表达式/gc
5.2 跨行替换
可用于生成多行文本,如将“a, b, c,"分成三行
:%s/,/,\r/gc
注意:在“搜索字符的表达式”中行尾回车符用\n表示;在“替换字符表达式”中回车用\r表示。
5.3 字符分组
在“搜索字符的表达式”中用字符表达式进行分组。在“替换字符表达式”中按序,用\1表示第一个分组字符,\2表示第二个分组字符,依次类推。
6. 其他
1)r 路径/文件名
读入一个文件并粘贴到当前光标之后,如:
:r ./log/aaa.lst
2) 常用正则表达式
[0-9]: 匹配一个数字
[0-9]\{8}: 匹配8个阿拉伯数字,比如可匹配89008789
[a-z]:匹配一个小写字母
\s: 空格
\S: 非空格
^: 行首;$: 行尾
\r: 回车,产生新的一行
\n: 回车符
运用举例:
[0-9]*\s: 匹配任意多个数字直到碰到一个空格
[0-9a-f]*\s: 匹配任意多个数字的十六进制数字直到碰到一个空格
3) 重复redo
:redo