工具/技巧来replace整个VS解决scheme的所有文件中的选项卡

我的解决scheme(30+项目)在混合选项卡和空格时有点混乱,我想用一个简单的步骤来解决这个问题。

有没有人知道一个技巧/工具一步完成整个解决scheme?

编辑:不完全是我的意思。 我希望文件格式良好。 只要find/replace不会做..文件仍然是一团糟。 我需要格式 – >高级 – >格式文档命令

万一如果你的文件包含空格作为解决scheme(即每个选项卡4个空格)等宽的标签,那么你应该使用普通VS的Quick replace工具。 为了遵循StyleCop的格式化规则,你应该使用空格而不是制表符,所以转到Quick replace (CTRL-h),selectUse wildcard ,然后在Find what字段中可以使用\t符号,用4个空格replace所有的解决scheme( Look in领域)。

但是,如果您的解决scheme文件包含由不同宽度的空格组成的选项卡,或者您想要应用单一格式的格式 ,那么您绝对应该使用Resharper的function来重新格式化代码。 这个function被称为代码清理 。 要将code cleanup应用到整个解决scheme或选定的项目,请转到解决scheme资源pipe理器,然后select上下文菜单中的Cleanup code 。 但是,在整个解决scheme启动重新格式化之前,请尝试将其调整到一个文件中,在Resharper的设置中有很多选项。

在Windows中工作时,我会在我的path中保留一个unix工具目录,仅用于这种紧急情况。 例如,在c:\ myproject目录中的任何.cs文件或它的子目录中,这将replace所有具有4个空格的制表符。

 find c:\myproject -name *.cs -exec sed -i -e "\"s/\t/ /g\"" {} ";" 

你去那里:

 using System; using System.IO; class _Runner { static void Main(string[] args) { var root=args[0]; var filePaths = Directory.GetFiles(root, "*.cs", SearchOption.AllDirectories); int updated = 0; foreach (var path in filePaths) { var content = File.ReadAllText(path); var replaced = content.Replace(" ", "\t"); if (replaced == content) { continue; } ++updated; Console.WriteLine("fixing " + path); File.WriteAllText(path, replaced); } Console.WriteLine("fixed {0} files", updated); } } 

保存为spaces-to-tabs.cs ,然后运行:

 C:>c:\Windows\Microsoft.NET\Framework\v3.5\csc spaces-to-tab.cs C:>spaces-to-tabs.exe C:\path\to\your\solution 

ctrl-h,设置“查看:”到“整个解决scheme”

你也可以录制一个macros。

一个简单而快捷的方法是在记事本+ +中打开文件,并手动将其replace(打开“显示所有字符”和选项卡将突出显示),或自动更换(必须使用“设置”)