我有一個像下面的句子:VIM更換問題
aaa
bbb
ccc
ddd
我希望他們能夠改變這樣的:
aaa=$aaa
bbb=$bbb
ccc=$ccc
ddd=$ddd
所以我用下面的命令做的vim的,但我得到了一個錯誤
:s/\(\^*\)/\1=\$\1/
,我意識到了\1
這裏不能使用兩次,那麼應該怎麼做呢?
我有一個像下面的句子:VIM更換問題
aaa
bbb
ccc
ddd
我希望他們能夠改變這樣的:
aaa=$aaa
bbb=$bbb
ccc=$ccc
ddd=$ddd
所以我用下面的命令做的vim的,但我得到了一個錯誤
:s/\(\^*\)/\1=\$\1/
,我意識到了\1
這裏不能使用兩次,那麼應該怎麼做呢?
背部參考\1
可以根據需要多次使用,但還有其他問題。您正則表達式應該看起來像:
:%s/^\(.*\)/\1=\$\1/
說明:%
告訴Vim,以取代所有線路; ^
作爲行首的標記應該是你的正則表達式中的第一個字符,不應該被轉義。 .*
的意思是「任何字符多次」。但是,原始表達式\(\^*\)
將查找字面字符^
(包括無)的任意數量的重複。
匹配該行的全部內容時,您既不需要^
定位點,也不需要通過\(...\)
進行捕獲。在替換中,您可以使用\0
或更短的&
。 (另外,你不需要在那裏轉義$
)。
:%s/.*/&=$&
太好了,我的問題解決了,謝謝! :) – user1726366