VIM中換行替換之迷

來源:互聯網
上載者:User

VIM中換行替換之迷 我們在shell下產生一個test檔案: $ echo -e "i\rlove\rWQ." >test然後,用vim開啟,果然是 I^Mlove^MWQ. 這時執行: :%s/\r/\r/g 發現檔案正常了。 但是這裡面有一個不正常,:%s/\r/\r/g 這個命令是把\r替換成了\r , 應該什麼都沒變化,怎麼就把檔案的分行符號給替換了呢? 仔細檢查了一下,發現這個問題還要從各個系統不同的分行符號開始,下面的這個表格大家比較熟悉了: windows/dos unix mac分行符號    CRLF LF    CR在SHELL中的表示 \r\n   \n  \r16進位符    0d0a   0a  0d:%s/\r/\r/g 這個命令中,第一個\r與第二個\r的意義是可能不相同的; 第一個\r代表 0d ,也就是CR; 而第二個\r,是VIM自行根據fileformat內建變數判斷決定的,見下表:          \n    \r:set ff=dos        00   0d0a(\n\r):set ff=unix       00   0a(\n):set ff=mac        00   0d(\r)OK,現在就可以解釋上面的 :%s/\r/\r/g 為什麼會把 0d變成0a了。 另外還有兩個小Tip: 根據fileformat的不同,vim會自動在檔案的最未尾添加一個分行符號,除非啟動時vim -b xxx , 同時還要開啟 set noeol才行。任何情形下,VIM中的\n都是00, 在VIM中會顯示為@ 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.