如何修复整个VS解决方案的不一致的行结尾?

Bor*_*ard 43 line-endings visual-studio-2010

Visual Studio将在打开文件时检测到不一致的行结尾,并且可以选择为该特定文件修复它.但是,如果我想为解决方案中的所有文件修复行结尾,我该怎么做?

Unc*_*ned 24

只是为了得到更完整的答案,这对我来说效果最好:

更换

(?<!\r)\n
Run Code Online (Sandbox Code Playgroud)

\r\n
Run Code Online (Sandbox Code Playgroud)

在整个解决方案中使用"regEx"选项.

这将在所有到目前为止没有正确行结束的文件中设置正确的行.它使用负向前瞻来检查\n前面的\ r是否存在.

小心其他解决方案:他们将修改所有文件中的所有行(忽略原始行结尾)或删除每行的最后一个字符.


Ron*_*Ron 9

您可以使用"替换文件"命令并启用正则表达式.例如,要使用标准Windows回车换行符"\ r \n"替换具有单个换行符"\n"(例如,来自GitHub)的行尾,请搜索:

([^\r]|^)\n
Run Code Online (Sandbox Code Playgroud)

这表示创建一个组(这就是为什么需要括号),其中第一个字符不是回车符或是行的开头.行测试的开始实际上仅适用于文件的开头,如果它恰好以"\n"开头.该小组之后是一个换行符.因此,您将匹配"; \n",它具有错误的行尾,但不匹配"\ r \n",这是正确的行尾.

并替换为:

$1\r\n
Run Code Online (Sandbox Code Playgroud)

这表示保留组($ 1)然后用"\ r \n"替换"\n".

  • 用'\ r \n`替换`\ r?\n`将清除所有行结尾而不涉及使用捕获组. (7认同)

小智 7

试着做

Edit > Advanced > Format Document
Run Code Online (Sandbox Code Playgroud)

然后保存文档,只要该文件没有被另一个外部编辑器修改,它应该保持一致.修复它给我.

  • 这对我来说没有解决问题.它改变了当前文件中的大量空白(不仅仅是行结尾),并且不影响解决方案中的任何其他文件. (8认同)