2016-04-26 36 views
0

我試圖用s#_decoded_block_替換包含模式s#_decoded_block[的行。我正在使用的命令是%s/s\d\+_decoded_block\\[/s\d\+_decoded_block_/g如何在vi中用某種模式替換一條線?

我希望得到s#_decoded_block_作爲替代,但我得到sd+_decoded_block_。請讓我知道我做錯了什麼。謝謝。

回答

1

問題是\d+只在搜索文本中有意義,而不在替換文本中。如果你想捕捉什麼匹配,然後在替換文本使用它,你需要一個比賽組:

%s/\(s\d+_decoded_block\)\[/\1_/ 

在這種情況下,我capured整個事情要保留,以免重新打字。

+0

謝謝它適合我。 – slin6174