0.基本操作
0.1多行复制
0.1.1、复制方法一
A、将光标移动到要复制的起始行
B、如果复制1行,则按下yy,如果是复制n行,则按下nyy
C、光标移动到粘贴地点,按下p
0.1.2、复制方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no co target_line_no
0.1.3、复制方法三(方法二+标签)
A、将光标移动到要复制的起始行,输入ma
B、将光标移动到要复制的结束行,输入mb
C、将光标移动到要复制的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b co ‘c
0.1.4、剪切方法一
A、将光标移动到要剪切的起始行
B、如果剪切1行,则按下dd,如果是剪切n行,则按下ndd
C、光标移动到粘贴地点,按下p
0.1.5、剪切方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no m target_line_no
0.1.6、剪切方法三(方法二+标签)
A、将光标移动到要剪切的起始行,输入ma
B、将光标移动到要剪切的结束行,输入mb
C、将光标移动到要剪切的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b m ‘c
1.正则表达式
1.1.行首、行尾及空格
1.1.1 符号具体含义
^表示行首
$表示行尾
\s表示空格
1.1.2 应用举例
在全局范围内删除开始空格
:%s/^\s\+/
删除末尾空格
:%s/\s\+$/
删除空行
:g/^$/d
删除空白行
:g/^\s\+$/d
删除-开始的行
:g/^-/d
2.Table与空格互转
2.1、空格转TAB
:set ts=8
:set expandtab
:%retab!
2.2、TAB转空格
:set ts=8
:set noexpandtab
:%retab!
3.删除重复行
3.1、方法一
先排序
:sort
然后删除的重复项的后面一项
:g/\%(^\1$\n\)\@<=\(.*\)$/d
3.2、方法二
先排序
:sort
然后删除重复项的前面一项
:g/^\(.*\)$\n\1$/d
3.3、方法三
先排序
:sort
然后将所有重复记录替换为第一条
:%s/^\(.*\)\(\n\1\)\+$/\1/
4.奇偶行
4.1、删除奇数行
%s/\(^.*$\)\n\(^.*$\)/\1
4.2、删除偶数行
%s/\(^.*$\)\n\(^.*$\)/\2
4.3、奇偶行合并,以tab分隔
%s/\(^.*$\)\n\(^.*$\)/\1\t\2
或
%s/\n\(.*\n\)/\t\1
5.生成行号
5.1、方法1
:r !seq 1 100
5.2、方法2
:let n=0 | g/^/s//\=n/|let n+=1
6、每行首字母大写
%s/^\([a-z]\)/\U\1/
7.将行调整为固定宽度
:s/\v(.{80})/\1\r/g