vim 去掉^M符號

解決方案

:set ff=unix
:%s/\r\+$//e

其它

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

摘自:http://zhidao.baidu.com/link?url=wLhMu3oceCoDJxf-ydp_yx-ytwaTRgDKxQdoVUAzgw4d4LIQJ2aqIKVbrE1SVyeWS1ik0Nwvh5tl-Ug6K8vkh_

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章