Visual studio 2010 如何修复整个VS解决方案中不一致的行尾?
VisualStudio将在打开文件时检测不一致的行尾,并且有一个选项可以修复该特定文件的行尾。但是,如果我想修复解决方案中所有文件的行尾,我该怎么做呢?试试看Visual studio 2010 如何修复整个VS解决方案中不一致的行尾?,visual-studio-2010,line-endings,Visual Studio 2010,Line Endings,VisualStudio将在打开文件时检测不一致的行尾,并且有一个选项可以修复该特定文件的行尾。但是,如果我想修复解决方案中所有文件的行尾,我该怎么做呢?试试看 Edit > Advanced > Format Document 然后保存文档,只要文件没有被其他外部编辑器修改,它就应该保持一致。帮我修好 您可以使用“在文件中替换”命令并启用正则表达式。例如,要用标准的Windows回车换行符“\r\n”替换具有单个换行符“\n”(例如,来自GitHub)的行尾,请搜索: ([^\r
Edit > Advanced > Format Document
然后保存文档,只要文件没有被其他外部编辑器修改,它就应该保持一致。帮我修好 您可以使用“在文件中替换”命令并启用正则表达式。例如,要用标准的Windows回车换行符“\r\n”替换具有单个换行符“\n”(例如,来自GitHub)的行尾,请搜索:
([^\r]|^)\n
这意味着创建一个组(这就是为什么需要括号),其中第一个字符不是回车符或是一行的开头。如果恰好以“\n”开头,行测试的开始实际上只针对文件的最开始部分。下面是一条新线。因此,您将匹配“;\n”,它有错误的行尾,而不是“\r\n”,它是正确的行尾
并将其替换为:
$1\r\n
这意味着保留组($1),然后将“\n”替换为“\r\n”。为了得到更完整的答案,这对我最有效: 替换
(?<!\r)\n
在带有“regEx”选项的整个解决方案中
这将在迄今为止没有正确行尾的所有文件中设置正确的行尾。它使用负向前看来检查\r\n前面的不存在
注意其他解决方案:它们要么修改所有文件中的所有行(忽略原始行结尾),要么删除每行的最后一个字符 如果安装了Cygwin和cygutils软件包,则可以使用Cygwin外壳中的以下命令链: unix2dos-idu*.cpp|sed-e's/0[1-9][0-9]/'-e's/[1-9][0-9]*0/'|sed'/[1-9][0-9]/!d'| sed-e's/[1-9][0-9]/'| xargs unix2dos (用所需的通配符替换*.cpp) 要了解其工作原理,可以使用unix2dos命令转换文件,但只需要转换具有不一致行尾(即UNIX和DOS的混合)的文件。-idu选项显示文件中dos和unix行结尾的数量。例如:
0 491 Acad2S5kDim.cpp
689 0 Acad2S5kPolyline.cpp
0 120 Acad2S5kRaster.cpp
433 12 Acad2S5kXhat.cpp
0 115 AppAuditInfo.cpp
这里,只需要转换Acad2S5kXhat.cpp文件。sed命令过滤输出,生成需要转换的文件列表,然后通过xargs处理这些文件。这并没有解决我的问题。它改变了当前文件中的大量空白(不仅仅是行尾),并且没有影响解决方案中的任何其他文件。也没有为我修复,(vsc 7.3.2)只应用源格式,(但不是行尾策略)将
\r?\n
替换为\r\n
将清除所有行尾,而不涉及使用捕获组。请注意,此方法对我无效。在我的例子中,VS2017在调试期间指向错误的行,所以我尝试了这种方法,但没有效果。使用VS提供的自动结束自动修复功能,即使C++文件也能很好地解决这个问题。格式化文档并没有多大帮助。
0 491 Acad2S5kDim.cpp
689 0 Acad2S5kPolyline.cpp
0 120 Acad2S5kRaster.cpp
433 12 Acad2S5kXhat.cpp
0 115 AppAuditInfo.cpp