VC ++에서 헤더와 소스 파일 사이를 이동할 수있는 바로 가기가 있습니까?


112

이것은 내가 이클립스 ( Ctrl+ Tab) 에서 익숙해 진 기능 이다. Visual C ++에 동등한 것이 있습니까?



@ LưuVĩnhPhúc Eclipse의 헤더 또는 소스 코드에있을 때 Alt-Tab을 누르면 프로젝트가 올바르게 색인화되었다고 가정하고 Eclipse가 소스와 헤더 사이를 전환합니다.
MrMas

답변:


138

Visual Studio 2013 이상에는 이에 대한 기본 바로 가기 키가 있습니다. Ctrl+ K, Ctrl+ O ( Ctrl 을 누른 상태에서 ko를 입력 한 다음 Ctrl을 놓아야합니다 )

이전 버전에서는 다음을 참조하십시오.

CPP와 H 파일 간 전환을위한 Visual Studio 매크로

또는

Visual Assist에서 해당 파일 열기


2
Visual Assist는 훌륭한 도구입니다. MSVC를 사용하는 모든 개발자에게 권장합니다
Stephen Nutt

10
게으른 VisualAssist 사용자의 경우 :Alt + O
nimcap 2012

2
누구든지 VS2013에 대한 솔루션이 있습니까?
Shaun Rowan 2013

5
VS 2013에 내장되어 있습니다. blogs.msdn.com/b/vcblog/archive/2013/08/23/…
Kyle Alons

3
좋아, 내 잘못이야. Ctrl + K 및 Ctrl + O가 실제로는 단일 바로 가기 명령이라는 사실을 몰랐습니다. 같은 두 가지 옵션이 아닙니다. VS를 처음 사용하는 사람들을위한 답변에서 언급 할 가치가있을 수 있습니다. :)
Petr Peller

31

Visual Studio 2013에서 이에 대한 기본 바로 가기 키는 Ctrl+ K, Ctrl+입니다.O


나를 위해 작동하지 않습니다. 2013 Community Edition. 일반 설정. 사용자 정의 / 키보드 창에서 commad 이름은 무엇입니까?
Jurlie

12
명령 이름 :EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
codekaizen 2015

24

이 매크로를 VS 구성에 추가 한 다음 (도구-> 매크로-> 매크로 탐색기를 통해) 핫키를 할당 할 수 있습니다 (도구-> 옵션-> 환경-> 키보드를 통해).

나는 단지 그것을 썼을뿐 (오랜 동안 이것을 시도하는 것을 의미했다!)하지만 지금까지 VS2008과 VS2010 모두에서 작동하는 것 같다.

매크로이기 때문에 원하는 규칙을 포함하도록 편집 할 수 있습니다 (예 : 다른 폴더 또는 여러 cpp 파일 또는 이와 유사한 파일에서 단일 헤더를 공유하는 경우 특수 명명 규칙).

다음은 매크로입니다 (더 잘 작성 될 수 있다고 확신합니다. 저는 VS 객체에 익숙하지 않고 매크로 만 .Net을 사용하고 있다는 것을 깨달았습니다. :)) :

Sub FileSwitch()
    Try
        Dim CurrentPath As String = DTE.ActiveDocument.FullName
        Dim OtherPath As String

        If (IO.Path.HasExtension(CurrentPath)) Then
            Dim CurrentExtension As String = IO.Path.GetExtension(CurrentPath)

            Select Case CurrentExtension
                Case ".h", ".hpp", ".hxx"
                    OtherPath = IO.Path.ChangeExtension(CurrentPath, ".cpp")
                    If (Not IO.File.Exists(OtherPath)) Then
                        OtherPath = IO.Path.ChangeExtension(CurrentPath, ".c")
                        If (Not IO.File.Exists(OtherPath)) Then
                            OtherPath = IO.Path.ChangeExtension(CurrentPath, ".cxx")
                        End If
                    End If
                Case ".cpp", ".c", ".cxx"
                    OtherPath = IO.Path.ChangeExtension(CurrentPath, ".h")
                    If (Not IO.File.Exists(OtherPath)) Then
                        OtherPath = IO.Path.ChangeExtension(CurrentPath, ".hpp")
                        If (Not IO.File.Exists(OtherPath)) Then
                            OtherPath = IO.Path.ChangeExtension(CurrentPath, ".hxx")
                        End If
                    End If
                Case Else
            End Select
            If (OtherPath <> Nothing) Then
                DTE.ItemOperations.OpenFile(OtherPath)
            End If
        End If

    Catch ex As System.Exception
        MsgBox(ex.Message)
    End Try
End Sub

다음은 매크로 편집기와 핫키 / 옵션 대화 상자가 어떻게 생겼는지 보여주는 (매우 넓은 :)) 스크린 샷입니다.

여기에 이미지 설명 입력


1
또 다른 좋아하는 VS 매크로 트릭 : 항상 작업중인 exe에 디버거를 연결하는 매크로를 기록한 다음 도구 모음에 붙입니다. 디버그해야 할 때마다 실행중인 프로세스에 대한 원 클릭 첨부 파일입니다.
Leo Davidson

우와 그거 굉장 하군! 플러그인은 .h와 .cpp 사이에서만 전환 할 수 있기 때문에 Nifty Solutions 플러그인보다 더 잘 작동합니다. 플러그인은 .hpp에서 .cpp로 전환되지 않습니다
j00hi

하지만 매크로를 어디에 넣을까요? 어떤 이유로 내 VS2010에는 이미 "Module1"매크로가 있습니다 ... 그래서 두 번 클릭하여 편집하고 "Public Module Module1"안에 매크로 코드를 삽입했습니다. 거기에서 도구 => 옵션 => 환경 => 키보드는 텍스트 편집기에서 바로 가기를 설정합니다.
Qwertie

우수하고 테스트되었으며 작동합니다. 2010 년 11 월에 게시 된 답변-2012 년 7 월에도 여전히 작동합니다. 완벽합니다!
rptr 2012-07-12

1
Alex : 매크로는 Visual Studio 전체에 적용됩니다. 그것들은 "매크로 프로젝트"(매크로 그룹을 저장하고로드 할 수 있음)에 저장되지만 내가 말할 수있는 한 일반적인 유형의 솔루션 / 프로젝트와 관련이 없습니다. 솔루션이나 프로젝트를 열기 전과 후에 사용할 수있는 기본 매크로 프로젝트에 정의 된 여러 매크로가 있습니다.
Leo Davidson

9

PhatStudio를 사용해보십시오 . 무료이며 간편한 설치 프로그램이 함께 제공됩니다.

  • ALT+ S= 헤더 / 소스 파일 간 전환

  • ALT+ O= 파일 열기 (Windows Vista / 7의 시작 메뉴와 같이 입력을 통한 즉시 검색 지원).


고마워, 이것은 무리 중 가장 쉬운 솔루션이며 무료입니다.
Russell Davis

8

다음과 같은 기능을 제공하는 Visual Assist를 사용해보십시오.

http://www.wholetomato.com/

헤더 / cpp 스왑이 한 부분 인 코드 검색 기능은 정말 좋습니다.

(저는 또한 그것의 인텔리 센스와 리팩토링 기능을 정말로 평가했지만 제가 말한 모든 사람들이 저와 동의하지는 않았습니다.)

편집 : 기억해두면 Nifty Solution Plugin도이 작업을 수행하며 다른 것은 아니지만 Visual Assist와 유사한 또 다른 작업을 수행하며 무료입니다.

http://code.google.com/p/niftyplugins/

(그 사람의 perforce 플러그인도 훌륭합니다. 기본 VSSCC 쓰레기보다 훨씬 낫습니다.)


Visual Assist를 살펴 보겠습니다. .NET 언어 전용이라고 생각했습니다.
Nate

5

Visual Studio 2008 및 2010에서는 .cpp 파일을 마우스 오른쪽 단추로 클릭하고 헤더 파일로 이동 ...을 선택하면 한 방향으로 이동합니다. 다른 방향으로, 헤더에서 선언하는 것을 마우스 오른쪽 버튼으로 클릭하고 정의로 이동을 선택하면 다른 방향으로 이동합니다. 함수 이름이 클래스 이름과 일치하기 때문에 생성자를 선택하면 모호성 해결 대화 상자를 거쳐야 할 수도 있지만 다른 것을 선택하면 원하는 곳으로 바로 이동할 수 있습니다. 나는 이것이 한 번의 키 입력이 아니라 두 번의 클릭 방식이라는 것을 알고 있지만 원하는 것을 수행합니다.


5

헤더의 함수 선언 위에 마우스를 놓고 F12를 누르면 cpp 파일의 정의에서 cpp 파일이 열립니다 ...이 기능을 광범위하게 사용합니다!


5

여기에이 답변이 표시되지 않지만 적어도 Visual Studio 2012 (Express 포함!)에서는 헤더 파일로 이동하기 위해 자신의 키보드 명령을 할당 할 수 있습니다 (참고 : 한 방향으로 만 이동-이동할 수 없음). 불행히도 소스 파일로 돌아갑니다 ...)

  1. 도구 / 옵션 / 환경 / 키보드로 이동합니다.
  2. 다음 명령을 찾습니다. EditorContextMenus.CodeWindow.GoToHeaderFile
  3. 원하는 키 조합 지정 (Alt-S 작동)
  4. 이익

이것이 어떤 버전의 VS에서 작동하는지 확실하지 않지만 추가 기능이 필요하지 않으며 적어도 한 방향으로 트릭을 수행하는 것 같습니다.


Visual Studio 2013에는 정확히 .h와 .cpp 파일 사이를 토글하는 EditorContextMenus.CodeWindow.ToggleHeaderCodeFile이라는 명령이 있습니다.
Jaanus Varus 2013


3

저는이 작업을 수행 한 Visual Assist의 팬입니다. 저렴하지는 않지만 헤더와 소스 사이를 전환하는 것보다 훨씬 더 많은 기능을 제공합니다. 또한 프로젝트 및 클래스 검색 기능에서 열린 파일을 많이 사용합니다. 물론 매크로는 무료입니다 ...



2

Visual Studio 2013의 경우 다른 사람들이 언급했듯이 다음과 같은 명령입니다.

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

기본 키 조합 : Ctrl+ K, Ctrl+ O이지만 원하는 키 조합을 새로 도입하면 변경할 수 있습니다.

단축키 누르기 :

아래에

도구-> 옵션-> 환경-> 키보드 .

따라서 .h에서 .cpp로 전환하는 스위치가 Ctrl+ 인 사용자 정의 키 조합을 선택할 수 있습니다 Tab.


1

Visual Assist는 Visual Studio Express 에디션도 지원하지 않습니다. 따라서 IDE를 사용하는 경우 매크로가 붙어 있습니다>


0

Visual Studio 2008에서는 Alt+ O.


8
Visual Assist가 설치되어 있어야합니다. 이것이 Visual Assist 명령 키 바인딩입니다.
sean e

0

그들의 (무한) 지혜로 MS는 MSVS 2012에서 매크로를 제거하기로 결정했기 때문에 위의 매크로는 작동하지 않습니다.

MSVS 2012의 경우 다음을 찾았습니다.

http://www.dwmkerr.com/switch/

고도로 구성 가능하며 개선을 돕고 싶다면 GitHub에서 할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.