VIM 命令
文件命令
打开单个文件 vim file
打开多个文件 vim file1 file2 file3
在vim窗口打开一个新的文件 :open file
在新窗口打开文件 :split file
切换到下一个文件 :bn
切换到上一个文件 :bp
查看当前打开的文件列表,当前正在编辑的文件会用[]括起来 :args
VIM的模式
正常模式(按Esc或Ctrl + [ 进入)左下角显示文件名或为空
插入模式(按i键进入)左下角显示--INSERT--
可视模式(按Ctrl + v 进入)左下角显示--VISUAL--
VIM导航命令
% 括号匹配
VIM插入命令
i 在当前位置前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
VIM查找命令
/text 正向查找
?text 反向查找
将光标移动到待查找的单词上,按*或者#进行查找,*类似于/,#类似于?
:set ignorecase 忽略大小写查找
:set noignorecase 不忽略大小写查找
:set hlsearch 高亮搜索结果
VIM替换命令
ra 将当前字符替换成a
s/old/new/ 替换当前行的第一个匹配
s/old/new/g 替换当前行的所有匹配
%s/old/new/ 替换所有行的第一个匹配
%s/old/new/g 替换整个文件的的所有匹配
10,20 s/^/text/g 在第10行到20行每行前面加上text
ddp 交换光标所在行和其紧邻的下一行
VIM使用技巧
1. 行处理1,:g/text/d 删除包含指定字符串的行
2. 行处理2,:g!/text/d 删除不包含指定字符串的行
3. 行处理3,:%s?^?\=line('.').' '? 在每行的行首添加序号
4. 列处理1,:1,$ s/.*/& &/g (&代表所匹配到的内容,这里.*代表匹配所有内容)
old: aa bb cc new1: aa bb cc aa bb cc
aa cc dd aa cc dd aa cc dd
bb cc dd bb cc dd bb cc dd
eg: 1,3 s/cc/&,&/g
new2: aa bb cc,cc
aa cc,cc dd
bb cc,cc dd
5. 列处理2,:%!awk '{print $1,$2,$2}' (一个逗号代表一个空格,不加逗号则没有空格,字符串连在一起)
new3: aa bb bb
aa cc cc
bb cc cc
6. 排序,:%!sort -u(可选,去重)