欢迎来到天天文库
浏览记录
ID:12326718
大小:27.50 KB
页数:8页
时间:2018-07-16
《linux vi 替换命令》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、linux:vi替换命令vi/vim中可以使用:s命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法,记录几种在此,方便以后查询。1.全局替换(1)v+G+$选定全部,然后输入:s/原始字符串/目标字符串/(2):%s/原始字符串/目标字符串/2.清除页面中所有行尾的空白符::%s/s+$//3.清除所有空白:%s/(s*)+/r/4.去掉所有的//注释:%s!s*//.*!!5.去掉所有的/**/注释:%s!s*/*_.{-}*/s*!!6.做某些内部数据重复替换有些时候我们需要组织
2、一些批量的数据进行命令行的执行,比如我们需要利用前面的数据生成后面的数据,例如这样的数据:/var/database/aaa.txt/var/database/bbb.txt/var/database/ccc.txt我想变成一个个的指令,比如变成一个个复制命令,复制到但前目录,那么可以执行::%s/(.*base/)(.*.txt)/cp12./2/变成了:cp/var/database/aaa.txt./aaa.txtcp/var/database/bbb.txt./bbb.txtcp/var/database/ccc
3、.txt./ccc.txt这里关键是子模式的使用:()中间的,1代表第一个找到的子模式,2代表第二个,以此类推,vim里面的()必须转义,跟其他语言不一样1.增加注释(一个操作应用在多行)比如需要增加#或者是//这种注释:Ctrl+v定位到开始行,然后选定需要的行,然后执行I命令,然后输入#或//,然后按Esc键两次,即可把注释操作应用到所有选定的行,记住选定不能使用v指令,而应该使用Ctrl+v(清除注释请参考上面的方法)(v是按行选定,Ctrl+v是按照列选定)2.对齐行v选定需要整齐的行,输入=进行归整3.打开多窗口在vim中使用:
4、sp文件名打开行窗口(横),使用:vsp文件名打开列窗口(竖),使用:q关闭当前窗口,使用:qa关闭所有窗口,使用Ctrl+w在各个窗口中进行切换。最大化窗口:Ctrl+w激活某个窗口,然后Shitf+-进行最大化改变窗口到指定行高度:Ctrl+w激活窗口,10(需要变成的行大小数字),Shift+-,执行改变增加若干行高度:Ctrl+w激活窗口,10(需要增加的行大小数字),Shift++,执行改变1.字符串/变量提示在输入内容状态,按Ctrl+P则显示所有本页中定义的字符串,如果输入字符串部分内容,然后按Ctrl+p则把所有你输入字符串开
5、头的内容显示出来。在输入状态下按Ctrl+x能过查看所有有效的其他方式darkness2008-7-710:23:s/vivian/sky/g这种格式用的比较多2.删除操作:%s/r//g删除DOS方式的回车^M:%s=*$==删除行尾空白:%s/^(.*)n1/1$/删除重复行:%s/^.{-}pdf/new.pdf/只是删除第一个pdf:%s///又是删除多行注释(咦?为什么要说「又」呢?):g/s*^$/d删除所有空行:这个好用有没有人用过还有其他的方法吗?:g!/^dd/d删除不含字符串'dd'的行:v/^dd
6、/d同上(译释:v==g!,就是不匹配!):g/str1/,/str2/d删除所有第一个含str1到第一个含str2之间的行:v/./.,/./-1join压缩空行:g/^$/,/./-j压缩空行ndw或ndW删除光标处开始及其后的n-1个字符。d0删至行首。d$删至行尾。ndd删除当前行及其后n-1行。x或X删除一个字符。Ctrl+u删除输入方式下所输入的文本。^R恢复u的操作J把下一行合并到当前行尾V选择一行^V按下^V后即可进行矩形的选择了aw选择单词iw内部单词(无空格)as选择句子is选择句子(无空格)ap选择段落ip选择段落(无空
7、格)D删除到行尾x,y删除与复制包含高亮区dl删除当前字符(与x命令功能相同)d0删除到某一行的开始位置d^删除到某一行的第一个字符位置(不包括空格或TAB字符)dw删除到某个单词的结尾位置d3w删除到第三个单词的结尾位置db删除到某个单词的开始位置dW删除到某个以空格作为分隔符的单词的结尾位置dB删除到某个以空格作为分隔符的单词的开始位置d7B删除到前面7个以空格作为分隔符的单词的开始位置d)删除到某个语句的结尾位置d4)删除到第四个语句的结尾位置d(删除到某个语句的开始位置d)删除到某个段落的结尾位置d{删除到某个段落的开始位置d7{删除
8、到当前段落起始位置之前的第7个段落位置dd删除当前行d/text删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样
此文档下载收益归作者所有