2011-03-25 126 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可以是任何不在正則表達式中的...我經常使用!而不是/(在處理路徑時更方便)例如