[visual-studio] Visual Studio 2008에서 후행 공백을 자동으로 제거하는 방법은 무엇입니까?

파일을 저장할 때 각 줄 끝에서 공백 문자를 자동으로 제거하도록 Visual Studio 2008을 구성 할 수 있습니까? 기본 제공 옵션이없는 것 같습니다.이 작업을 수행 할 수있는 확장 기능이 있습니까?



답변

CodeMaid는 매우 인기있는 Visual Studio 확장이며 다른 유용한 정리와 함께이 작업을 자동으로 수행합니다.

저장시 파일을 정리하도록 설정했는데 이것이 기본값이라고 생각합니다.


답변

정규식을 사용하여 찾기 / 바꾸기

찾기 및 대화 교체, 확장 옵션을 찾아 확인 사용을 선택, 정규 표현식을

찾을 내용 : ” :Zs#$

다음으로 바꾸기 : “”

모두 바꾸기를 클릭 하십시오.

다른 편집기 ( 일반 정규식 파서)에서 ” :Zs#$“는 ” \s*$“입니다.


답변

이 작업을 수행하기 위해 저장 후 실행되는 매크로를 만들 수 있습니다.

매크로의 EnvironmentEvents 모듈에 다음을 추가하십시오.

Private saved As Boolean = False
Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) _
                                         Handles DocumentEvents.DocumentSaved
    If Not saved Then
        Try
            DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _
                                 "\t", _
                                 vsFindOptions.vsFindOptionsRegularExpression, _
                                 "  ", _
                                 vsFindTarget.vsFindTargetCurrentDocument, , , _
                                 vsFindResultsLocation.vsFindResultsNone)

            ' Remove all the trailing whitespaces.
            DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _
                                 ":Zs+$", _
                                 vsFindOptions.vsFindOptionsRegularExpression, _
                                 String.Empty, _
                                 vsFindTarget.vsFindTargetCurrentDocument, , , _
                                 vsFindResultsLocation.vsFindResultsNone)

            saved = True
            document.Save()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Trim White Space exception")
        End Try
    Else
        saved = False
    End If
End Sub

나는 이것을 문제없이 한동안 사용하고 있습니다. 매크로를 만들지는 않았지만 빠른 Google 검색으로 찾을 수있는 ace_guidelines.vsmacros의 매크로에서 수정했습니다.


답변

저장하기 전에 자동 서식 단축키 CTRL+ K+ 를 사용할 수 있습니다 D.


답변

다음 세 가지 작업으로 쉽게 수행 할 수 있습니다.

  • Ctrl+ A(모든 텍스트 선택)

  • 편집-> 고급-> 수평 공백 삭제

  • 편집-> 고급-> 형식 선택

몇 초 기다렸다가 완료하십시오.

그것은의 Ctrl+ Z의 경우 뭔가 수는 ‘잘못했다.


답변

이미 주어진 모든 답변에서 요소를 취하여 여기에 내가 작성한 코드가 있습니다. (주로 C ++ 코드를 작성하지만 필요에 따라 다른 파일 확장자를 쉽게 확인할 수 있습니다.)

기여 해주신 모든 분들께 감사드립니다!

Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) _
    Handles DocumentEvents.DocumentSaved
    Dim fileName As String
    Dim result As vsFindResult

    Try
        fileName = document.Name.ToLower()

        If fileName.EndsWith(".cs") _
        Or fileName.EndsWith(".cpp") _
        Or fileName.EndsWith(".c") _
        Or fileName.EndsWith(".h") Then
            ' Remove trailing whitespace
            result = DTE.Find.FindReplace( _
                vsFindAction.vsFindActionReplaceAll, _
                "{:b}+$", _
                vsFindOptions.vsFindOptionsRegularExpression, _
                String.Empty, _
                vsFindTarget.vsFindTargetFiles, _
                document.FullName, _
                "", _
                vsFindResultsLocation.vsFindResultsNone)

            If result = vsFindResult.vsFindResultReplaced Then
                ' Triggers DocumentEvents_DocumentSaved event again
                document.Save()
            End If
        End If
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Trim White Space exception")
    End Try
End Sub


답변

정규식 검색을 사용하여 공백 제거 및 주석 다시 쓰기에 설명 된대로 매크로를 사용할 수 있습니다.