2011.9.5
vi删除(剪切)和复制多行
删除(剪切)多行:
dd:删除一行
ndd:删除当前行开始的n行
dw:删除当前字符开始的一个字符
ndw:删除当前字符开始的n个字符
d$,D:删除当前字符开始的一行字符(当前字符到该行结束的内容)
d):删除到下一句的开始
d}:删除到下一段的开始
d回车:删除两行
复制多行(有些删除亦可用):
常用:将第i行至第j行的数据,复制到k行
方法1:(推荐)
:i,j copy k 或 :i,j co k
由此亦有:
:i,j move k 或:i,j m k
方法2:
光标移到结束行j,ma
光标移到起始行i,y’a
光标移到需要复制的行k,输入p,行前输入则输入大写P
方法3:
光标移到i行,shift+v
光标移到j行,ctrl+c
光标移到k行,p
设置显示行号 :set nu 或 set number
设置自动缩进 :set smartindent
s命令实现字符串的替换
:s/str1/str2/ 用字符串str2替换行中首次出现的字符串str1
:s/str1/str2/g 用字符串str2替换行中所有出现的字符串str1
:.,$ s/str1/str2/g 用字符串str2替换正文当前行到末尾所有出现的字符串str1
:1,$ s/str1/str2/g 用字符串str2替换正文中所有出现的字符串str1
:g/str1/s//str2/g 功能同上
由此可知,g放在命令末尾,表示对搜索字符串的每次出现进行替换;不加g,表示只对搜索字符串的首次出现进行替换,g放在命令开头,表示对正文中所有包含搜索字符串的行进行替换。