关于Visual Studio源代码文件的行尾
我们都知道,UNIX只使用换行符(linefeed)来结束每一行,而DOS传统上使用CR+LF来结束每一行,Visual Studio应该完全在DOS世界中,但不管出于什么原因,当我们从代码服务器上获取代码后,我有时收到以下消息:
如果文件是从某个外部项目导入的,这是可以理解的,但是这个文件是由Visual Studio本身创建的。呵呵?接受他们“修复”该文件的提议,我稍后将其提交到git存储库并获得另一条消息:
目前还不清楚我的修复是否是一个真正的修复,或者只是一个解决方法,但我相信这些问题源于Visual Studio在每个源文件的开头都包含了字节顺序标记;这是一个三字节序列(EF BB BF),与Unicode编码有关,但这会混淆UTF-8,我也相信行结尾也一样。
修复方法是在项目目录的根目录中使用.editorconfig文件,并告诉它使用UTF-8编码,而不是UTF-8 with-byte-order-mark:
在我的例子中,我关闭了项目,然后打开了项目,而未来的文件保存剥离了字节顺序标记,从而结束了VS和git之间的战斗。我对editorconfig说得还不够多,它允许您配置与项目一起(并跟随)的首选项,并且不要求每个人在每次处理新项目时都调整其Visual Studio选项。所有项目都应该有一个.editorconfig,我很感激VS2017(及以后的版本)支持它。
为虫子生,为虫子死,为虫子奋斗一辈子