2012-08-26 61 views
0

vim中的搜索命令允許您將光標放置在搜索結果中。例如,/hello/b+2將光標置於第一個l上。VIM如何用偏移量替換

我如何使用substitute命令來做到這一點?

s/hello/b+2/_/  

不起作用。

我需要這個來替換不是整個搜索字符串,而只是它的一部分(具體來說,是爲了空白除一個字的第一個字符以外的所有字符)。

+0

請詳細說明。沒有得到你的要求。 – mtk

回答

7

你通常有兩種選擇:類似於其他正則表達式引擎零寬度匹配(雖然不同的語法):

:s/\(he\)\@<=llo/_/ 

或者vim專用「此處設置的比賽開始」:

:s/he\zsllo/_/ 

。此外,還有一個解決辦法,這將類似於在幾乎所有其他正則表達式引擎:

:s/\(he\)llo/\1_/ 

:此捕獲文本,應該是不變,使得更換包括它。