2012-10-19 58 views
5

我有一個像下面的句子:VIM更換問題

aaa 
bbb 
ccc 
ddd 

我希望他們能夠改變這樣的:

aaa=$aaa 
bbb=$bbb 
ccc=$ccc 
ddd=$ddd 

所以我用下面的命令做的vim的,但我得到了一個錯誤

:s/\(\^*\)/\1=\$\1/ 

,我意識到了\1這裏不能使用兩次,那麼應該怎麼做呢?

回答

4

背部參考\1可以根據需要多次使用,但還有其他問題。您正則表達式應該看起來像:

:%s/^\(.*\)/\1=\$\1/ 

說明:%告訴Vim,以取代所有線路; ^作爲行首的標記應該是你的正則表達式中的第一個字符,不應該被轉義。 .*的意思是「任何字符多次」。但是,原始表達式\(\^*\)將查找字面字符^(包括無)的任意數量的重複。

+0

太好了,我的問題解決了,謝謝! :) – user1726366

4

匹配該行的全部內容時,您既不需要^定位點,也不需要通過\(...\)進行捕獲。在替換中,您可以使用\0或更短的&。 (另外,你不需要在那裏轉義$)。

:%s/.*/&=$&