0
我試圖用s#_decoded_block_
替換包含模式s#_decoded_block[
的行。我正在使用的命令是%s/s\d\+_decoded_block\\[/s\d\+_decoded_block_/g
。如何在vi中用某種模式替換一條線?
我希望得到s#_decoded_block_
作爲替代,但我得到sd+_decoded_block_
。請讓我知道我做錯了什麼。謝謝。
我試圖用s#_decoded_block_
替換包含模式s#_decoded_block[
的行。我正在使用的命令是%s/s\d\+_decoded_block\\[/s\d\+_decoded_block_/g
。如何在vi中用某種模式替換一條線?
我希望得到s#_decoded_block_
作爲替代,但我得到sd+_decoded_block_
。請讓我知道我做錯了什麼。謝謝。
問題是\d
和+
只在搜索文本中有意義,而不在替換文本中。如果你想捕捉什麼匹配,然後在替換文本使用它,你需要一個比賽組:
%s/\(s\d+_decoded_block\)\[/\1_/
在這種情況下,我capured整個事情要保留,以免重新打字。
謝謝它適合我。 – slin6174