vim的正则表达式问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
after1990s
帖子: 60
注册时间: 2009-07-21 21:03

vim的正则表达式问题

#1

帖子 after1990s » 2009-08-31 21:12

命令如下:
s/\(stop\)/\1ed/g

1,$s/\(stop\)/\1ed/g

这个两个命令是不是一个效果?
头像
huangyou
帖子: 40
注册时间: 2006-09-10 21:02

Re: vim的正则表达式问题

#2

帖子 huangyou » 2009-08-31 23:01

:s 指的是substitue, 替换的意思, :%s指的是全域替换,就是从第一行到最后一行;
1,$意思也很明显, $一般指的是最后
头像
543082593
帖子: 234
注册时间: 2008-11-07 8:41

Re: vim的正则表达式问题

#3

帖子 543082593 » 2009-09-01 15:08

第一个的意思 是把文本中所有的 stop 换成 stoped
第二个的意思是从第一行到最后一行把所有的stop换成stoped
我感觉貌似是一样的 不过没试过
fall again
smooth criminal
they don't care about us
billie jean
beat it
dangerous
the lost children
childhood
ben
i will be there
speechless
she is out of my life
rock with you
...
LOVE U FOREVER
头像
nio
帖子: 74
注册时间: 2006-06-30 7:00
联系:

Re: vim的正则表达式问题

#4

帖子 nio » 2009-09-01 15:58

试了一下没有什么区别。
Agnxy
帖子: 27
注册时间: 2009-04-18 22:33

Re: vim的正则表达式问题

#5

帖子 Agnxy » 2009-09-01 20:34

不完全一样。
vim中的替换命令如果不加上address,默认只处理当前行。
也就是说第一个命令只替换当前行的stop,第二个命令则替换整个文本的stop.
回复