存档

2012年8月 的存档

Vim换行乱码(^M)处理

2012年8月7日 没有评论

Vim打开文件的时候有时候会出现行尾有多余的字符“^M”,出现这个符号的原因是文件中使用多种换行符混合使用造成的。

换行符(Line-Ending)主要有三种, CR, LF, CRLF.

CR(\r)是Mac采用的方式,

LF(\n)是UNIX/Linux采用的方式,

CRLF(\r\n)是DOS/Windows采用的方式.

Vim打开一个文件和写入一个文件的时候,它需要知道如何把换行符号写入到缓冲区,所以在一个buffer中一般只有一种换行符,具体是什么换行符号,取决于fileformat的设置,如果没有设置的话,它可能会根据fileformats这个设置来决定最后的fileformat。

Vim中可以通过以下命令设置换行符:

set fileformat=dos
当出现多种换行符的时候我们可以全能替换命令统一换行符
:%s/\r\(\n\)/\r/g


参考资料:
http://stackoverflow.com/questions/799417/gvim-showing-carriage-return-m-even-when-file-mode-is-explicitly-dos

http://www.fanjun.me/?p=479

分类: VIM 标签: ,