当您打开具有混合行结尾的文件时,Visual Studio将提示您将其标准化。有没有办法规范化当前解决方案中的所有文件?
相关帖子没有回答我的问题:
答案 0 :(得分:6)
您可以创建一个bat文件,以递归方式规范化所有文件。
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 ++查找和替换功能:
在执行此操作之前,您应该备份或提交您所做的任何更改