Jul 26, 2007
在 vi 中替换字符串
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
Posted by Sky at 12:07 AM | Permalink | comments(6) | Edit | OS
Comments
^_^,最经典的就是用这个去掉^M,
:%s/vivian/sky/gc
Commented by Flavian.Chen | July 27, 2007 10:17 PM
这个还是比较有用,就是记不住。
Commented by 姜国利 | July 29, 2007 05:21 PM
vivian太强大了,太神了,快叩拜吧~~~
Commented by vivian | August 7, 2007 05:41 PM
叩拜!
再叩拜!
继续叩拜!
......
太累了,回去睡觉了!
Commented by gibson | September 4, 2007 10:06 PM
这其实是正则表达式的功劳,:)
Commented by 匿名 | January 13, 2009 02:51 PM
说得不全,是sed加正则表达式,:)
Commented by 匿名 | January 13, 2009 03:14 PM