Vim 的文字取代是如下:
:s/abc/def/g
將 abc 換成 def:s/\d\d\d/aaa/g
使用 regex, 將連續三個數字換成 aaa
但是換行的 regex 該怎麼寫, ex: 要將 ,
變成 \n,
, 理所當然就 :s/,/\n,/g 會發現變成 ^@,
, 而不是換行.
經過亂測, 原來 Vim regex 的換行是要用 \r
, 而不是 \n
. 所以要將 ,
變成 換行,
要如下:
- :s/,/\r,/g
感謝 jeffhung 指點:
- 要在 vim 的 regex 裡輸入 \n,請先按 Ctrl-V 然後再按 enter
- 若在 gvim 裡面要按 Ctrl-Q 再按 Enter
原來有人跟我一樣亂測就成功了 XD
呵呵, 因為 \n 都測不出來, 後來就想 Windows 換行是 \r\n, 或許可以試試 \r, 沒想到就試出來了~ 😛
要在 vim 的 regex 裡輸入 \n,請先按 Ctrl-V 然後再按 enter。
原來如此, 出來是 ^M, 不過這個才是正解呀~ 感恩~ Orz..
雖然換行是^M,
但是若是用vi -s script的方式,
就必須用\r的方式.
嗯嗯, 我現在是都用 \r 來取代~ 🙂