vim替換時添加換行符


今天在使用vim(ubuntu)時遇到了一個問題,使用s/foo/bar/替換時,如果要在bar中包含換行符,那麼使用\n是無法達到目的的。

而我們已經清楚,在ubuntu下換行符爲\n,(windows下爲\r\n,Mac下爲\r)。但是如果在s/foo/bar/中的bar中包含\n(例如s/foo/\naaa/),替換完成後,會看到替換爲^@aaa,而不是我們希望的在foo之前換行。


google了下,原來vim當中s/foo/bar/, foo和bar中的換行符是不同的,foo當中的換行符要根據不同的文件格式(unix/windows/mac)來確定,而bar中的換行符只有一種就是:\r。無論文件格式是哪一種,vim都會將bar中的\r替換爲相應的換行符。所以在ubuntu下面執行:

s/\n/\r/事實上文檔沒有進行任何改動


在windows下面執行s/\r\n/\r/也是相同的效果。

發佈了22 篇原創文章 · 獲贊 8 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章