Vim 使用 regex 將 "," 取代成換行


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

關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix。將永久鏈結加入書籤。

Vim 使用 regex 將 "," 取代成換行 有 6 則回應

  1. yjchen 說道:

    原來有人跟我一樣亂測就成功了 XD

  2. Tsung 說道:

    呵呵, 因為 \n 都測不出來, 後來就想 Windows 換行是 \r\n, 或許可以試試 \r, 沒想到就試出來了~ 😛

  3. jeffhung 說道:

    要在 vim 的 regex 裡輸入 \n,請先按 Ctrl-V 然後再按 enter。

  4. Tsung 說道:

    原來如此, 出來是 ^M, 不過這個才是正解呀~ 感恩~ Orz..

  5. yt 說道:

    雖然換行是^M,
    但是若是用vi -s script的方式,
    就必須用\r的方式.

  6. Tsung 說道:

    嗯嗯, 我現在是都用 \r 來取代~ 🙂

發表迴響