Archive for the ‘비주얼스튜디오’ tag
Visual Studio에서 gvim 띄우는 스크립트
[옛날 블로그 글입니다. 2009.07.19]
비주얼 스튜디오용 매크로입니다. 기능은
- 현재 편집중인 파일을 gvim에서 띄워준다.
- 현재 편집중인 파일과 짝 파일( .h 혹은 .cpp)을 vs(Vertical Split)로 gvim에서 띄워준다.
- 현재 편집중인 파일의 짝 파일을 비주얼 스튜디오에서 열어준다.
요새 비주일 스튜디오를 여러 개 띄울일이 많아서 봤더니 Visual Assist나 Reshaper같은 플러그인들이 메모리를 엄청 먹고 있었습니다. 이 참에 정리하자는 생각으로 플러그인을 모두 지워버렸더니, 비주얼 스튜디오가 정말 가볍네요. 5개씩 띄워도 무리가 없습니다.
하지만 역시나 Visual Assist가 없어서 제일 아쉬운 것은 코드 하이라이팅과 h/cpp 전환하기 기능. 코드 하이라이팅은 포기, h/cpp 전환 기능은 아래 매크로로 대체했습니다.
그리고 vim도 가끔 써주면 즐거워집니다. vim에서 편집하고나서 다시 비주얼 스튜디오에 반영해 주는 기능은 없습니다. -_-;; 비주얼 스튜디오가 알아서 바뀐 파일 로딩해주니 크게 문제는 없구요.
아래 함수 중에서 Public으로 된 녀석들에 단축키를 설정해서 쓰시면 좋습니다.
- EditActiveDocumentWithGVIM
- EditCoupleFilesWithGVIM
- OpenMyCoupleFile
아, 안에 보시면 gvim 경로같은 거 하드코딩 되어 있으니 잘 고쳐서 쓰세요. 음. 그리고 설치하는 것은 비주얼 스튜디오에서 매크로 탐색기 여시고, 기본 모듈하나 더블클릭하시면 매크로 편집기(IDE)가 뜨는데요, 거기에 붙여 넣으시면 될 겁니다. -_-;; 뭐 어떻게든 될거에요 ㅎㅎ
소스코드
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module muscly
Private Function FindFileItem(ByVal fileName As String, ByVal collection As ProjectItems) As ProjectItem
For Each item As ProjectItem In collection
If item.ProjectItems.Count > 0 Then
Dim projItem = FindFileItem(fileName, item.ProjectItems)
If Not projItem Is Nothing Then
Return projItem
End If
ElseIf item.Name = fileName Then
Return item
End If
Next
Return Nothing
End Function
Private Function GetCoupleFileName(ByVal fileName As String) As String
'If cpp
If fileName.ToLower.EndsWith(“cpp”) Or fileName.ToLower.EndsWith(“inl”) Then
Return fileName.Substring(0, fileName.Length – 3) + “h”
ElseIf fileName.ToLower.EndsWith(“h”) Then
' Try with cpp
Dim firstTarget = fileName.Substring(0, fileName.Length – 1) + “cpp”
If Not FindFileItem(firstTarget, DTE.ActiveDocument.ProjectItem.ContainingProject.ProjectItems) Is Nothing Then
Return firstTarget
Else
' return inl
Return fileName.Substring(0, fileName.Length – 1) + “inl”
End If
End If
End Function
Private Function GetFullPathFromFileName(ByVal fileName As String) As String
Dim projItem As ProjectItem = FindFileItem(fileName, DTE.ActiveDocument.ProjectItem.ContainingProject.ProjectItems)
Dim a = projItem.Properties.Item(“FullPath”)
Return projItem.Properties.Item(“FullPath”).Value
End Function
Public Sub OpenMyCoupleFile()
On Error Resume Next
'Get File Name
Dim Name As String = DTE.ActiveDocument().Name
Dim coupleFileName = GetCoupleFileName(Name)
DTE.ExecuteCommand(“File.OpenFile”, coupleFileName)
End Sub
Public Sub EditCoupleFilesWithGVIM()
Dim curFilePath = DTE.ActiveDocument.FullName
Dim coupleFileName = GetCoupleFileName(DTE.ActiveDocument().Name)
Dim coupleFilePath = GetFullPathFromFileName(coupleFileName)
Dim windowSizeCommand = “-c “”set columns=180″” -c “”set lines=60″”"
Dim splitCommand = “-c “”vs ” + coupleFilePath + “”"”
Dim proc = New System.Diagnostics.Process
proc.StartInfo.FileName = “c:\\Program Files\\Vim\\vim71\\gvim.exe”
proc.StartInfo.Arguments = curFilePath + ” ” + windowSizeCommand + ” ” + splitCommand
proc.Start()
End Sub
Public Sub EditActiveDocumentWithGVIM()
'Get File Name
Dim fullName As String = DTE.ActiveDocument().FullName
Dim proc = New System.Diagnostics.Process
proc.StartInfo.FileName = “c:\\Program Files\\Vim\\vim71\\gvim.exe”
proc.StartInfo.Arguments = fullName
proc.Start()
End Sub
End Module
광고 – blog.altprog.com
도메인 또 바꿨습니다. -_-;;
muscly.net 은 계약 기간 끝나면 서비스 종료됩니다~
Visual Studio Guideline 표시
[옛날 블로그 글입니다. 2009.06.18]
C++ 코딩하다보면 인자가 많아서 줄을 넘어가버리는 경우가 있지요. 적당히 엔터를 집어넣어서 줄을 맞춰주다가 예전에 Visual Studio에서 컬럼에 가이드라인을 표시했던 기억이 나서 좀 찾아봤습니다.
http://blogs.msdn.com/saraford/archive/2004/11/15/257953.aspx
찾아보니 설정창은 따로 없지만 레지스트리를 수정해서 가이드라인을 표시할 수가 있네요. 줄의 색상과 컬럼 위치를 여러개 설정할 수 있는 것 같습니다. 위 링크에 가면 VS 2005 기준으로 설명하고 있구요, 댓글을 보니 VS 2003 도 된다네요. ( 심지어는 MSSQL의 SQL Manager도 된다는 -_-;; )
가이드라인이 있으니 일정한 기준으로 소스코드를 정리할 수 있어서 좋네요~