Linux
在 VIM 中交換單詞而不使用任何第三方外掛
假設我有一個只包含字元和數字的文件(沒有特殊字元或標點符號),我如何使用 VIM 交換兩個可能相鄰也可能不相鄰的單詞?
我嘗試了以下方法(將所有出現的“Tom”替換為“Jerry”),但由於明顯的原因它不起作用。
:%s/Tom/Jerry/g :%s/Jerry/Tom/g
謝謝!
也許你可以使用這樣的中間變數
:%s/Tom/XX9G235a65/g :%s/Jerry/Tom/g :%s/XX9G235a65/Jerry/g
下面是兩個分別使用
:help sub-replace-expression
條件運算符和字典查找的變體(都使用且同樣繁瑣)::substitute/\<\(Tom\|Jerry\)\>/\=submatch(0) ==# 'Tom' ? 'Jerry' : 'Tom'/g :substitute/\<\(Tom\|Jerry\)\>/\={'Tom':'Jerry', 'Jerry':'Tom'}[submatch(0)]/g
有了這個,你不需要像@MichaelDurrant’s answer中的中間人。