批量标准化Visual Studio中的行结尾

时间:2012-02-20 18:53:08

标签: visual-studio-2010

当您打开具有混合行结尾的文件时,Visual Studio将提示您将其标准化。有没有办法规范化当前解决方案中的所有文件?

相关帖子没有回答我的问题:

4 个答案:

答案 0 :(得分:6)

您可以创建一个bat文件,以递归方式规范化所有文件。

  1. 下载命令行工具Tofrodos
  2. 使用以下内容在解决方案目录的根目录中创建一个bat文件:
  3.   

    for / R %% i in(* .cs)do“C:\ Prgs \ Tofrodos \ todos.exe”-p“%% i”

    请注意,您必须更新 todos.exe 的文件路径,并可能更新* .cs 过滤器。

    然后运行bat文件并等待它完成。

答案 1 :(得分:6)

正如黄色血液在Aaron F。的回答中指出的那样,如果用\n(CRLF)替换\r\n(LF),你将会有一段不愉快的时光,因为它会添加一个在每个LF之前的CR,即使那些已经有一个。

但是,您可以使用任何支持批量替换文件的文本编辑器(例如Notepad ++或Visual Studio"替换文件")来使用正则表达式实现所需。

例如,要用CRLF替换LF,请确保激活正则表达式选项,然后替换所有出现的

(?<!\r)\n

\r\n

\r是回车(CR),\n是换行符(LF)。模式(?<!\r)\n将匹配前一个字符不是回车符的任何换行符,而不捕获(即替换)前一个字符。

另一种方法更为简单:只需将\r\n替换为\n

与往常一样,备份文件并确保在处理整个解决方案之前在单个文件上测试操作。

我会将此作为评论添加到Aaron F.答案中,但我的声誉不够高:)

答案 2 :(得分:2)

Visual Studio没有为整个解决方案规范化行结尾的机制。该功能基本上仅限于在打开和更改该文件时检查文件是否正确。

行结尾的规范化虽然是Visual Studio在IEditorOperations::NormalizeLineEndings中公开的API。因此,可以编写一个插件/脚本来对解决方案中的项目执行操作。

答案 3 :(得分:1)

我刚使用Notepad ++查找和替换功能:

  1. 设置NotePad ++以显示行结尾,view-&gt; show symbols - &gt;显示所有字符
  2. 打开“在文件中查找”对话框
  3. 根据您正在进行的转换设置查找\ r \ n(或\ n)的内容
  4. 将替换为\ n(或\ r \ n)
  5. 将目录指向解决方案文件夹
  6. 在执行此操作之前,您应该备份或提交您所做的任何更改