這個運用,舉個例子來說明: 如果我們要將內容所有 A loves B 改成 B loves A, 但是檔案內容中的A有很多個人, B也是, 我們若一種組合就打一次命令那會很耗時; 不過,我們知道規則就是 A loves B中,要把 A 與 B互換就好,不管A或B是誰; 所以,我們只要來match任何符合 A loves B的字串,把A 與 B的內容存下來,換成 B loves A就好。 這時我們就需要用\(與\)將要存的字串包起來,被包起來的字串 vim 會依序存到\1,\2,\3,...。所以,我們只要一行指令就可以完成
:%s/\(\w\+\) loves \(\w\+\)/\2 loves \1/g
John loves Mary. Mary loves Jack. Jack loves Rose.
就會變成
Mary loves John. Jack loves Mary. Rose loves Jack.
沒有留言:
張貼留言