您尚未登录。

#1 2013-04-28 16:51:54

rmn190
会员
注册时间: 2013-04-26
帖子: 79

vim中的全部替换问题:目标所在行里只替换掉了第一个,其它的没有被替换掉。

在使用vim的全局替换时, 发现这么个问题。

按理说用“:%s/old/new/g”这样的命令,可以全局的替换。可以执行后, 它只替换了目标所在行的第一个,这一行后面的没有被替换掉。

如下这些内容:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      第四讲第四节:替换命令


                ** 输入 :s/old/new/g 可以替换 old 为 new。**

  1. 请将光标移动到本节中下面标记有 ---> 的那一行。

  2. 输入 :s/thee/the <回车> 。请注意该命令只改变光标所在行的第一个匹配
     串。

  3. 输入 :s/thee/the/g 则是替换全行的匹配串,该行中所有的 "thee" 都会被
     改变。

---> thee best time to see thee flowers is in thee spring.

  4. 要替换两行之间出现的每个匹配串,请
     输入   :#,#s/old/new/g   其中 #,# 代表的是替换操作的若干行中
                              首尾两行的行号。
     输入   :%s/old/new/g     则是替换整个文件中的每个匹配串。
     输入   :%s/old/new/gc    会找到整个文件中的每个匹配串,并且对每个匹配串
                              提示是否进行替换。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


执行“:%s/thee/the/g”命令后,变成:



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      第四讲第四节:替换命令


                ** 输入 :s/old/new/g 可以替换 old 为 new。**

  1. 请将光标移动到本节中下面标记有 ---> 的那一行。

  2. 输入 :s/the/the <回车> 。请注意该命令只改变光标所在行的第一个匹配
     串。

  3. 输入 :s/the/the/g 则是替换全行的匹配串,该行中所有的 "thee" 都会被
     改变。

---> the best time to see thee flowers is in thee spring.

  4. 要替换两行之间出现的每个匹配串,请
     输入   :#,#s/old/new/g   其中 #,# 代表的是替换操作的若干行中
                              首尾两行的行号。
     输入   :%s/old/new/g     则是替换整个文件中的每个匹配串。
     输入   :%s/old/new/gc    会找到整个文件中的每个匹配串,并且对每个匹配串
                              提示是否进行替换。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


也就是“---> the best time to see thee flowers is in thee spring.”里有第二个和第三个thee没有被替换掉。


这个是不是vim的配置有问题? 还是怎地?

如直接用vi(而不是用vim),不会有这个问题。 难道是vim的一个bug,不会吧?

离线

#2 2013-04-28 17:32:34

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,432
个人网站

Re: vim中的全部替换问题:目标所在行里只替换掉了第一个,其它的没有被替换掉。

:h 'gdefault'

离线

#3 2013-04-28 17:41:16

rmn190
会员
注册时间: 2013-04-26
帖子: 79

Re: vim中的全部替换问题:目标所在行里只替换掉了第一个,其它的没有被替换掉。

百合仙子 说:
:h 'gdefault'

多谢, 我加上gg后成功了, 多谢~~~~

离线

页脚