点标点符号后,VIM不会替换单词。怎么改呢?

时间:2013-06-13 15:51:42

标签: vim

我有以下问题

这是文字:

printf("sysname %s",ut.sysname);

我想使用vim逐行替换sysname。我在我的gvim中输入命令:

:s/sysname/version

我想得到这样的输出:

printf("version %s",ut.version);

但是我得到了这样的输出:

printf("version %s",ut.sysname);

我做错了什么?

2 个答案:

答案 0 :(得分:6)

你错过了g命令,该命令适用于当前行的所有匹配项,而不仅仅是第一行:

:s/sysname/version/g

作为奖励:

:%s/sysname/version/g

将替换当前文件中的所有出现,而不仅仅是当前行。

答案 1 :(得分:0)

在一行上完成

:s/sysname/version/g

您也可以在输入qq宏录制器之前使用q宏录制器,然后按@q,然后使用:重播您想要替换它的任何其他行。或者按up :%s/sysname/version/g选择旧命令。

或者在每一行都这样做:

:%s/\(printf("\)sysname\(.*\)sysname/\1version\2version

然而,在更换每一行时你应该小心。如果有大量文字,请尝试使您的替换更具体。

我愿意

{{1}}