去除vim ^M符號


有兩種情況,會出現打開的文件都顯示^M符號:
1. vim被配置為fileformat=unix,而你打開的文件都是dos格式的。unix格式的換行符為0A(ascii碼)也就是<LF>,dos格式的換行符為 0D 0A(也就是<CR><LF>),<CR>其實就顯示為^M。下面是詳細講解:
DOS, Mac 和Unix格式的文件
回想計算機的史前史,那時的打字機使用兩個字符來開始一個新行。
首先是一個字符命令使打印頭移回開始位置(回車,<CR>),然后另一個字
符命令控制向前進紙一行(進紙,<LF>).
在計算機誕生之初,存儲設備十分昂貴。於是有人就提出沒有必要
用兩個字符來表示一行的結束。UNIX一族決定只用進紙一個字符<Line
Feed>來表示行尾。來自蘋果陣營的人則把回車<CR>作為換行的標
准。MS-DOS(和微軟的Windows)仍然決定沿用古老的回車換行<CR><LF>傳
統。
這也意味着如果把文件從一個系統移到另一個不同的系統,你就會遇
到與換行相關的問題。Vim編輯器則可以識別這些不同格式的文件。
你可以在'fileformats'選項里指定你希望Vim能自動識別的格式的集
合。下面的這個命令就可以讓Vim能自動識別UNIX格式和MS-DOS格式:
:set fileformats=unix,dos
把這句話放在_vimrc中,一般情況就都能OK。
2. 你的文本中既有unix的換行符,又有dos的換行符,那么vim會認為你打開的是unix的,所以,那些dos的換行符就會出現惱人的^M。不過這種情況不常見。辦法是:
1)若你的vim版本大於7.1,並想用dos顯示和保存,如下語句:
:e ++ff=dos
2)若你的vim版本小於等於7.1,又想把文章按照dos格式顯示和保存,如下語句:
:set ff=dos
:%s/\r\+$//e
3)若你的vim版本小於等於7.1,又想把文章按照unix格式顯示和保存,如下語句:
:set ff=unix
:%s/\r\+$//e


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM