用于替换整个VS解决方案的所有文件中的选项卡的工具/技巧

时间:2010-11-10 09:14:48

标签: visual-studio visual-studio-2010

我的解决方案(30+项目)在混合标签和空格时有点混乱,我想通过一个简单的步骤解决这个问题。

对于整个解决方案,是否有人知道在一步中完成此操作的技巧/工具?

编辑:不完全是我的意思。我希望文档格式化得很好。只是找/替不会做..文件仍然是一团糟。 我想要格式化的东西 - >高级 - >格式文档命令

6 个答案:

答案 0 :(得分:71)

如果您的文件在整个解决方案中包含空格作为宽度相等的选项卡(即每个选项卡有4个空格),那么您应该使用普通VS的Quick replace工具。要遵循StyleCop的格式规则,您应该使用空格而不是标签,因此请转到Quick replace(CTRL-h),选择Use wildcard,然后选择Find what您可以使用\t符号字段替换所有解决方案(Look in字段)的4个空格。

如果您的解决方案文件包含由不同宽度的空格组成的标签,或者您想应用单一格式,那么您绝对应该使用{{3}重新格式化代码的功能。此功能称为Resharper。要将code cleanup应用于整个解决方案或所选项目,请转到解决方案资源管理器,然后在上下文菜单中选择Cleanup code。但是在启动整个解决方案的重新格式化之前尝试并在一个文件上调整它,在Resharper的设置中有很多选项。

答案 1 :(得分:4)

你去吧:

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

答案 2 :(得分:3)

在Windows中工作时,我在路径中保留了一个unix工具目录,仅用于此类紧急情况。例如,这将在c:\ myproject目录或其子目录中的任何.cs文件中替换所有带有4个空格的选项卡。

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

不是一个完美的解决方案,但扩展“修复混合标签”是一个巨大的帮助 https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.FixMixedTabs

基本上当你打开一个混合了标签/空格空格的文件时,它会弹出文件顶部的工具栏以允许你标准化它

答案 5 :(得分:0)

ctrl-h,将“Look in:”设置为“整个解决方案”

您也可以录制宏。