Visual Studio偶尔会告诉我:

以下文件的行尾不一致你想规范行尾吗?

然后它给我一个不同标准的下拉列表,比如Windows、Mac、Unix和几个Unicode标准。

这意味着什么?如果我单击“是”会发生什么?


当前回答

这通常意味着行以回车/换行对以外的内容结束。当您将网页复制粘贴到代码编辑器中时,通常会发生这种情况。

规范行结束符就是确保所有的行结束符都是一致的。它可以防止一行以\r\n结尾,而另一行以\r或\n结尾;第一个是Windows行结束对,而其他的通常用于Mac或Linux文件。

因为你是在Visual Studio中开发,你显然想在下拉菜单中选择“Windows”。: -)

其他回答

不仅仅是Visual Studio……任何读取文件的工具、编译器、链接器等都必须能够处理它。

一般来说(对于软件开发),我们接受多平台的行结束问题,但是让版本控制软件来处理它。

这意味着,例如,有些文本行带有<回车><Linefeed> (Windows标准),而有些文本行仅以<Linefeed> (Unix标准)结束。

如果你点击'是'这些行结束在你的源文件将被转换为所有相同的格式。

这不会对编译器产生任何影响(因为行尾仅仅算作空格),但它可能会对其他工具产生一些影响(例如,你的版本控制系统上的'diff')。

要打开/关闭该选项,请从菜单栏执行以下步骤:

工具→选项→环境→文档→加载时检查行尾是否一致

我在VS 2019中遇到了这个问题,在为Unix设置换行符配置之前,通过为Windows设置换行符配置解决了这个问题。

工具>选项>保存格式>设置>换行符:Windows

这通常意味着行以回车/换行对以外的内容结束。当您将网页复制粘贴到代码编辑器中时,通常会发生这种情况。

规范行结束符就是确保所有的行结束符都是一致的。它可以防止一行以\r\n结尾,而另一行以\r或\n结尾;第一个是Windows行结束对,而其他的通常用于Mac或Linux文件。

因为你是在Visual Studio中开发,你显然想在下拉菜单中选择“Windows”。: -)