今天我遇到了這種情況,我需要更改var[name]
到var [name]
和很多其他地方name
可能是描述或其他字符串。我可以這樣做以下命令:如何使用Vim替換將var [foo]更改爲foo?
%s/var[$variable]/$variable/g
今天我遇到了這種情況,我需要更改var[name]
到var [name]
和很多其他地方name
可能是描述或其他字符串。我可以這樣做以下命令:如何使用Vim替換將var [foo]更改爲foo?
%s/var[$variable]/$variable/g
基於問題的標題,下面的表達式應該改變var[foo]
到foo
:
:%s/\vvar\[(.{-})\]/\1/g
但你提到你需要改變var[name]
到var [name]
細節,下面應該這樣做:
從意見做第二個替代的其他方式:
:%s/var\zs\ze\[.*\]/ /g
或
:%s/var\zs\ze\[[^]]*\]/ /g
謝謝,第一行適用於我,所以'\ 1'是指'()'裏面有什麼匹配的,我正確嗎? – mko
太棒了!是'\ 1'是指第一個捕獲組。 – Amit
謹防貪婪修飾符,特別是'。*'。這個答案中的第一個命令用'foo] var [bar'替換var [foo] var [bar]',第二個命令用'var [foo] var [bar]'替換它。嘗試使用'。\ { - }'或'[^]] *'。 – benjifisher
要知道,如果你已經知道正則表達式和一般拍攝的東西,在這方面,你顯然有逃避組字符,而不是相反:
%s/var[\(variable\)]/\1/g
沒有更多的信息,我不能更有幫助。
你嘗試了嗎?它有用嗎?你有一些示例輸入和輸出? (是的,這可以做,但可能不會與你寫的) – FDinoff
你正在使用文字'$變量'? –