標籤:os 使用 for 檔案 問題 ef line as window
有兩種情況,會出現開啟的檔案都顯示^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
去除vim ^M符號