页次: 1
在使用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,不会吧?
离线
:h 'gdefault'
离线
:h 'gdefault'
多谢, 我加上gg后成功了, 多谢~~~~
离线
页次: 1