Visual Studio偶尔会告诉我:
以下文件中的行结尾不一致.你想要标准化行结尾吗?
然后它给我一个不同标准或类似的下拉菜单,如Windows,Mac,Unix和几个Unicode.
这意味着什么,如果我点击会发生Yes
什么?
这通常意味着你的行以回车符/换行符对之外的其他内容结尾.当您从网页复制并粘贴到代码编辑器中时,通常会发生这种情况.
标准化行结尾只是确保所有行结束字符都是一致的.它阻止一行结束\r\n
,另一行以\r
or 结尾\n
; 第一个是Windows行结束对,而其他通常用于Mac或Linux文件.
由于您是在Visual Studio中开发的,因此您显然希望从下拉列表中选择"Windows".:-)
有些行以\n
.
其他一些行以\r\n
.
Visual Studio建议您使所有行结束相同.
如果您使用的是Visual Studio 2012:
转到菜单文件 → 高级保存选项 →选择行结束类型为Windows(CR LF).
要打开/关闭选项,请从菜单栏中按照以下步骤操作:
工具 → 选项 → 环境 → 文档 → 检查加载时的行结束是否一致
您正在编辑的文件已使用其他一些不使用相同行结尾的编辑器进行编辑,从而生成具有混合行结尾的文件.
用于行结尾的ASCII字符是:
CR,回车
LF,换行
Windows = CRLF
Mac OS 9或更早版本= CR
Unix = LF
维基百科的换行文章可能会帮助你.这是一段摘录:
不同的换行约定通常会导致在不同类型的系统之间传输的文本文件显示不正确.例如,源自Unix或Apple Macintosh系统的文件在Microsoft Windows上运行的某些程序上可能显示为单行.相反,当在Unix系统上查看源自Windows计算机的文件时,额外CR可以显示为^ M或显示在每行的末尾或作为第二个换行符.
这意味着,例如,你的一些文本行
(Windows标准),有些只有一个
(Unix标准).
如果单击"是",则源文件中的行尾将转换为具有相同格式.
这对编译器没有任何影响(因为行尾只计算为空格),但它可能会对其他工具产生一些影响(例如版本控制系统上的'diff').