developer tip

전체 VS 솔루션의 모든 파일에서 탭을 대체하는 도구 / 트릭

copycodes 2020. 12. 25. 10:20
반응형

전체 VS 솔루션의 모든 파일에서 탭을 대체하는 도구 / 트릭


내 솔루션 (30 개 이상의 프로젝트)은 탭과 공백을 혼합 할 때 약간 엉망이며 한 번의 쉬운 단계로이 문제를 해결하고 싶습니다.

누구든지 전체 솔루션에 대해 한 단계로이 작업을 수행하는 트릭 / 도구를 알고 있습니까?

편집 : 정확히 내가 의미하는 것은 아닙니다. 문서의 형식이 잘 지정 되었으면합니다. 찾기 / 바꾸기 만하면 안됩니다 .. 문서는 여전히 엉망입니다. 형식-> 고급-> 문서 형식 명령과 같은 것을 원합니다.


파일에 솔루션 전체에 걸쳐 동일한 너비의 탭으로 공백이 포함 된 경우 (예 : 탭당 4 개의 공백) 일반 VS Quick replace도구 를 사용해야합니다 . StyleCop의 서식 규칙 을 따르 Quick replace려면 탭 대신 공백을 사용해야하므로 (CTRL-h) 로 이동하여 선택 Use wildcard하고 Find what필드 에서 \t기호 를 사용 하여 모든 솔루션 ( Look in필드)에 대해 4 개의 공백으로 대체 할 수 있습니다 .

그러나 솔루션 파일에 너비가 다른 공백으로 구성된 탭이 포함되어 있거나 단일 스타일 형식 을 적용 하려면 Resharper 의 기능을 사용하여 코드를 다시 형식화해야합니다. 이 기능을 코드 정리 라고 합니다. code cleanup전체 솔루션 또는 선택한 프로젝트에 적용하려면 솔루션 탐색기로 이동하여 Cleanup code상황에 맞는 메뉴에서 선택 합니다. 그러나 전체 솔루션에서 재 포맷을 시작하기 전에 하나의 파일에서 수정하고 Resharper 설정에 많은 옵션이 있습니다.


당신은 간다 :

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

Windows에서 작업 할 때 이러한 긴급 상황을 대비하여 유닉스 도구 디렉토리를 내 경로에 보관합니다. 예를 들어, 이것은 c : \ myproject 디렉토리 또는 하위 디렉토리의 모든 .cs 파일에서 모든 탭을 공백 4 개로 대체합니다.

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

간단하고 빠른 방법은 메모장 ++에서 파일을 열고 수동으로 바꾸거나 ( '모든 문자 표시'를 켜면 탭이 강조 표시됨) 자동으로 바꾸는 것입니다 ( '설정'으로 재생해야 함).


완벽한 솔루션은 아니지만 "Fix Mixed Tabs"확장은 큰 도움이됩니다. https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.FixMixedTabs

기본적으로 탭 / 공백 공백이 혼합 된 파일을 열면 파일 상단에 도구 모음이 팝업되어 정규화 할 수 있습니다.


ctrl-h, "찾아보기 :"를 "전체 솔루션"으로 설정

또한 매크로를 기록 할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/4142828/tool-trick-to-replace-tabs-in-all-files-of-an-entire-vs-solution

반응형