vim編輯文件時出現^M的解決方法
时间:2010-03-31 来源:davhuang
背景:
在三大主流操作系統Unix, Windows, Mac中,文本文件表示*行尾*時,使用不同的符號。
Unix使用LF,即line feed,為0x0A,或用^J表示
Mac使用CR,即carriage return,為0x0D,或用^M表示
Windows使用CRLF,為0x0D0A,或用^M^J表示
於是,VIM在不同的系統上便採用不同的符號解析行尾,文件格式分為三種:unix, dos, mac,用 fileformat 標識。
查看當前格式: :set ff?
各格式間轉換: :set ff=unix 并 :w
問題:
在同一文件中,若行尾符號使用混亂,如有時按unix方式用LF結尾,有時按dos方式用CRLF結尾,vim便按unix格式解析(在Linux平台)。結果,使用Windows格式CRLF結尾的行,便出顯示出一個多餘的CR,即^M。
解法:
用查找替換將^M刪除。
法一:
:%s/^M//
注意: ^M的輸入要用 ctrl-v + m 或 ctrl-v + <enter> 的方式,即按住ctrl-v的同時按m或回車。
法二: vim中 CR 可直接用 \r 表示。
:%s/\r//
參考:
:help ff
:help file-formats
http://vim.wikia.com/wiki/File_formathttp://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix
(二者需翻牆)
相关阅读 更多 +