본문 바로가기

ETC

Visual Studio 2010 UTF-8 파일 저장 및 공백 탭 제거하기(완결판).


 2011/08/25 - [ETC] - Visual studio 2010 소스 저장 UTF-8 로 하기 및 뒷줄 공백 제거


아래에 있는건 파일 저장 할때 자동으로 utf-8로 저장을 하는거라..
가끔 원치 않는 결과를 낳을수도 있게에 필요할때 단축키로 하는 방법을 만들어 봤습니다.

일단 Alt + 11키를 눌르거나   도구 -> 매크로 -> 매크로 IDE로 매크로 IDE를 실행시킴니다.
탐색기에서 MyMacros쪽에 추가 -> 모듈 추가로 새로운 매크로 파일을 생성후
Public Module Module1 여기 아래 부분에 매크로를 작성하시면 됨니다..

    
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
Imports System.IO '추가


Public Module Module1
    Public Sub SaveUtf8()
        Try
            DTE.ActiveDocument.Save()

            Dim fileName As String = DTE.ActiveDocument.FullName
            Dim input As New FileStream(fileName, FileMode.Open)
            Dim isUTF8 As Boolean = (input.ReadByte = &HEF And input.ReadByte = &HBB And input.ReadByte = &HBF)
            input.Close()

            If (Not isUTF8) Then
                Dim s As String = File.ReadAllText(fileName, System.Text.Encoding.Default)
                File.WriteAllText(fileName, s, System.Text.Encoding.UTF8)
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly, "UTF8로 바꾸는데 실패했습니다.")
        End Try
    End Sub

    Public Sub SaveReplaceEmpty()
        Try
            Dim result As vsFindResult
            result = DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _
                                 ":b+$", _
                                 vsFindOptions.vsFindOptionsRegularExpression, _
                                 String.Empty, _
                                 vsFindTarget.vsFindTargetCurrentDocument, , , _
                                 vsFindResultsLocation.vsFindResultsNone)

            DTE.ActiveDocument.Save()
            If result = vsFindResult.vsFindResultReplaced Then
                DTE.ActiveDocument.Save()
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly, "공백 및 탭을 지우는데 실패했습니다.")
        End Try
    End Sub
End Module

위와 같은 함수 2개를 만들면 됨니다..

도수 -> 옵션-> 키보드 탭으로 가신후
 


MyMacros에 매크로를 추가했기때문에 my만 검색해도 아래와 같이 나오게 됨니다..
그런 후 원하시는 단축키를 지정해 주시면 됨니다..