用于搜索和替换的vim命令

时间:2011-03-25 12:56:08

标签: vim

这是我的问题。

在vim编辑器中,我想在整个文件中选择双引号之间的所有单词,并且我希望用前面的gettext字符串替换所选单词。请任何人告诉我vim命令这样做。

代表: 如果文件包含

printf(“first string \ n”); printf(“second string \ n”);

替换后我的文件应该是这样的

printf(gettext(“first string \ n”)); printf(gettext(“second string \ n”));

3 个答案:

答案 0 :(得分:1)

在vim中试试这个:

:%s/\(".*"\)/gettext(\1)/g

此处\(\)用于对文字进行分组,然后\1用于将gettext与{{1}}函数一起放回。< / p>

答案 1 :(得分:1)

你应该可以这样做:

s/\".\{-}\"/gettext\(\1\)/g

答案 2 :(得分:1)

在命令模式下:

:%s!"\([^"]*\)"!gettext("\1")!g

%用于整个文档,[^"]*用于除引号之外的任何内容,最后g用于行中的所有出现(默认值仅为第一个)。分隔符char可以是regexp中没有的任何东西......我经常使用!而不是/(例如在处理路径时更方便。)

相关问题