Vim:Mac vs. Linux ^ M问题

时间:2011-01-08 11:07:55

标签: windows linux vim line-endings

我使用Vim和GIT在Linux / Ubuntu机器上开发我的项目。在过去,我曾经使用Windows,这意味着行结束是DOS格式。现在转移到Linux后,我总是在行尾看到^ M令人困惑/恼人的字符。有些人在这里:

How to convert the ^M linebreak to 'normal' linebreak in a file opened in vim?

建议我应该查找/替换或使用像dos2unix这样的工具。这些都是很好的建议,但是对于版本控制的项目,这意味着我必须在更改后为文件添加不必要的提交,无论如何这是一个不值得花时间在它上面的大任务。所以:

有没有让Vim容忍这个?也就是说,如果文件是DOS行结束的,它会保持这样,并将其格式用于新的换行符,依此类推。

3 个答案:

答案 0 :(得分:2)

我已将此行添加到我的.vimrc文件中。

set fileformats=unix,mac,dos                

如果您不知道vimrc文件是什么,它只是配置(并允许您自定义)您的vim的文件。默认情况下,vim将在用户的主文件夹中查找名为 .vimrc 的文件(注意开头的点)。如果找不到,它将从 / etc / vimrc 中获取。

答案 1 :(得分:1)

是的,您可以在vim中设置以下内容,说它是dos格式文件:

:set ff=dos

同样地:

:set ff=unix

答案 2 :(得分:1)

我找到的最佳答案是@Keith在评论中回答:

“使用subversion你可以设置一个属性svn:eol-style = native,它会导致它自动将所有平台的行结尾转换为... native类型。我不知道git是否有这个功能,但你可能会首先考察一下。它可能会这样做。“

这些链接可能是有用的链接是如何设置:
http://help.github.com/dealing-with-lineendings/
http://git-scm.com/docs/gitattributes