Vim

意外的搜尋和替換行為 - Neovim

  • November 30, 2020

所以我有很多帶有這個標題的 LaTex 表:

Signal Name & Value & Time & Notes

我想用這個標題替換:

Signal Name     & Value & Time ($\si{\nano\second}$)    & Duration ($\si{\nano\second}$)    & Notes

所以我寫了這個命令:

:%s/Signal Name & Value & Time & Notes/Signal Name\t& Value\t& Time($\\si{\\nano\\second}$)\t& Duration ($\\si{\\nano\\second}$)\t& Notes/g

但由於某種我不明白的原因,它產生了這個輸出:

Signal Name Signal Name & Value & Time & Notes Value    Signal Name & Value & Time & Notes Time($\si{\nano\second}$)    Signal Name & Value & Time & Notes Duration ($\si{\nano\second}$)   Signal Name & Value & Time & Notes Notes

這是怎麼回事,我該如何解決?

在替換命令的替換文本中,&表示匹配的文本。如果要替換為文字 & 符號,請使用\&.

這應該可以解決問題:

:%s/Signal Name & Value & Time & Notes/Signal Name\t\& Value\t\& Time($\\si{\\nano\\second}$)\t\& Duration ($\\si{\\nano\\second}$)\t\& Notes/g

引用自:https://unix.stackexchange.com/questions/622197