星期四, 八月 28, 2008

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
相關標籤

this is comment icon [回覆]

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

Comment by yjchen (08/29/2008 11:32)

this is comment icon 回 yjchen [回覆]

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

Comment by Tsung (08/29/2008 12:17)

this is comment icon Ctrl-V Enter [回覆]

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

Comment by jeffhung (08/31/2008 08:49)

this is comment icon 回 jeffhung [回覆]

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

Comment by Tsung (08/31/2008 11:52)
Add this page to del.icio.us Add this page to Yahoo Taiwan's bookmark Add this page to MyShare

發表迴響

標題

內容 (限制 1000 字)

暱稱

電子郵件

個人網頁


 authimage


PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~