我有以下问题
这是文字:
printf("sysname %s",ut.sysname);
我想使用vim逐行替换sysname
。我在我的gvim中输入命令:
:s/sysname/version
我想得到这样的输出:
printf("version %s",ut.version);
但是我得到了这样的输出:
printf("version %s",ut.sysname);
我做错了什么?
答案 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}}