2011-03-25 228 views
0

这是我的问题。vim命令用于搜索和替换

在vim编辑器中,我想选择整个文件中双引号之间的所有单词,我想用gettext字符串替换前面的单词。请有人告诉我vim命令来做到这一点。

为前: 如果该文件包含

的printf( “第一串\ n”); printf(“second string \ n”);

我的文件应该喜欢这个

的printf(gettext的( “第一串\ n”))更换后; printf(gettext(“second string \ n”));

回答

1

试试这个在vim:

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

这里\(\)被用来组的文本,然后\1是用来放1 backreference回连同gettext功能。

1

你应该能够做到:

在命令模式
s/\".\{-}\"/gettext\(\1\)/g 
1

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

%是整个文档,[^"]*除外引号里的东西,和g末所有发生在该行(默认只是第一个)。分隔符char可以是任何不在正则表达式中的...我经常使用!而不是/(在处理路径时更方便)例如