我使用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行结束的,它会保持这样,并将其格式用于新的换行符,依此类推。
答案 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