Czy istnieje skrót do przechodzenia między nagłówkiem a plikiem źródłowym w VC ++?

112

Jest to funkcja, do której przyzwyczaiłem się w Eclipse ( Ctrl+ Tab). Czy istnieje odpowiednik w programie Visual C ++?

JeffV
źródło
Zobacz także to pytanie
idbrii
@ LưuVĩnhPhúc Gdy jesteś w nagłówku lub kodzie źródłowym w Eclipse, naciśnij Alt-Tab, a Eclipse powinno przełączyć Cię między źródłem a nagłówkiem, zakładając, że projekt został poprawnie zindeksowany.
MrMas

Odpowiedzi:

138

W programie Visual Studio 2013 i nowszych istnieje domyślny skrót klawiaturowy do tego: Ctrl+ K, Ctrl+ O (będziesz musiał przytrzymać Ctrl i wpisać ko, a następnie zwolnić Ctrl )

We wcześniejszych wersjach zobacz:

Visual Studio Macro do przełączania między plikami CPP i H.

lub

Otwórz odpowiedni plik w programie Visual Assist

Kyle Alons
źródło
2
Visual Assist to świetne narzędzie - polecam je wszystkim programistom używającym MSVC
Stephen Nutt
10
Dla leniwych użytkowników VisualAssist:Alt + O
nimcap
2
czy ktoś ma rozwiązanie dla VS2013?
Shaun Rowan
5
Jest wbudowany w VS 2013. blogs.msdn.com/b/vcblog/archive/2013/08/23/…
Kyle
3
Ok, moja wina. Nie zdawałem sobie sprawy, że Ctrl + K i Ctrl + O to w rzeczywistości POJEDYNCZE polecenie skrótu; nie dwie takie same opcje. Może warto wspomnieć w odpowiedzi dla osób, które są nowicjuszami w VS :)
Petr Peller
31

W programie Visual Studio 2013 domyślnym skrótem klawiaturowym jest Ctrl+ K, Ctrl+O

Anton K.
źródło
nie działa dla mnie 2013 Community Edition. Ustawienia główne. Jaka jest nazwa Commad w oknie Dostosuj / Klawiatura?
Jurlie
12
Nazwa polecenia:EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
codekaizen
24

Możesz dodać to makro do konfiguracji VS (poprzez Narzędzia -> Makra -> Eksplorator makr), a następnie przypisać do niego skrót klawiszowy (przez Narzędzia -> Opcje -> Środowisko -> Klawiatura).

Dopiero co go napisałem (chciałem tego spróbować od wieków!), Ale wydaje się, że jak dotąd działa, zarówno w VS2008, jak i VS2010.

Ponieważ jest to makro, możesz je edytować, aby zawierało dowolne reguły (np. Szukanie w innych folderach lub specjalne reguły nazewnictwa, jeśli masz pojedynczy nagłówek współużytkowany przez wiele plików cpp lub podobne).

Oto makro (jestem pewien, że mogłoby być lepiej napisane; nie jestem zaznajomiony z obiektami VS i tylko zrealizowane makra używały .Net mniej więcej w połowie pisania tego tekstu :)):

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

Oto (bardzo szeroki :)) zrzut ekranu pokazujący, jak powinien wyglądać edytor makr i okna dialogowe skrótów / opcji, aby pomóc tym, którzy ich nie znają:

wprowadź opis obrazu tutaj

Leo Davidson
źródło
1
Kolejna ulubiona sztuczka z makrami VS: Nagraj makro dołączania debugera do pliku exe, nad którym zawsze pracujesz, a następnie umieść to na pasku narzędzi. Dołączanie jednym kliknięciem do tego uruchomionego procesu zawsze, gdy trzeba go debugować.
Leo Davidson
Wow to świetnie! Działa lepiej niż wtyczka Nifty Solutions, ponieważ wtyczka może przełączać się tylko między .h i .cpp, nie przełącza się z .hpp na .cpp
j00hi
Ale gdzie umieścić makro? Z jakiegoś powodu mój VS2010 ma już makro "Moduł1" ... więc dwukrotnie kliknąłem, aby je edytować i wstawiłem kod makra do "Modułu publicznego Module1". Stamtąd Narzędzia => Opcje => Środowisko => Klawiatura, aby ustawić skrót w Edytorze tekstu.
Qwertie
Znakomity, sprawdzony i działający. Odpowiedź wysłana w listopadzie 2010 - nadal działa w lipcu 2012. Idealnie!
rptr
1
Alex: makra są globalne dla programu Visual Studio. Są one zapisywane w „projektach makr” (które pozwalają na zapisywanie i ładowanie grup makr), ale o ile wiem, nie są one związane ze zwykłym typem rozwiązania / projektu. Mam kilka makr zdefiniowanych w domyślnym projekcie makr, które są dostępne przed (i po) otwarciu dowolnego rozwiązania lub projektu.
Leo Davidson
9

Wypróbuj PhatStudio . To nic nie kosztuje i jest dostarczane z łatwym instalatorem.

  • ALT+ S= Przełączanie między plikiem nagłówkowym / plikiem źródłowym

  • ALT+ O= Otwórz plik (obsługuje natychmiastowe wyszukiwanie za pomocą wpisywania, jak menu Start w systemie Windows Vista / 7).

Tymek
źródło
Dzięki, to najłatwiejsze rozwiązanie z grona, a także bezpłatne.
Russell Davis
8

Wypróbuj Visual Assist, który ma między innymi tę funkcję:

http://www.wholetomato.com/

Funkcjonalność przeglądania kodu - której częścią jest zamiana nagłówka / cpp - jest naprawdę dobra.

(Naprawdę oceniłem również jego funkcje inteligencji i refaktoryzacji, ale nie wszyscy, z którymi rozmawiałem, zgodzili się ze mną.)

EDYCJA: właśnie zapamiętane, wtyczka Nifty Solution również to robi - plus jeszcze inna rzecz podobna do Visual Assist, choć nic więcej - i są bezpłatne:

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

(Wtyczka Perforce gościa też jest świetna. Znacznie lepsza niż domyślny śmieć VSSCC).


źródło
Spojrzę na Visual Assist. Założyłem, że to tylko dla języków .NET.
Nate
5

W programie Visual Studio 2008 i 2010 możesz kliknąć prawym przyciskiem myszy plik .cpp i wybrać opcję Przejdź do pliku nagłówkowego ..., co przeniesie Cię w jednym kierunku. Z drugiej strony, jeśli klikniesz prawym przyciskiem myszy coś, co deklarujesz w nagłówku, i wybierzesz Przejdź do definicji, to przeniesie Cię w innym kierunku. Być może będziesz musiał przejść przez okno dialogowe rozwiązywania niejednoznaczności, jeśli wybierzesz konstruktora, ponieważ nazwa funkcji jest zgodna z nazwą klasy, ale jeśli wybierzesz cokolwiek innego, pójdziesz prosto, gdzie chcesz. Wiem, że jest to metoda dwóch kliknięć zamiast jednego naciśnięcia klawisza, ale robi to, co chcesz.

Kate Gregory
źródło
5

Jeśli najedziesz kursorem myszy na deklarację funkcji w nagłówku i naciśniesz F12, plik cpp zostanie otwarty w definicji pliku cpp ... Używam tej funkcji bardzo często!


źródło
5

Nie widzę tutaj tej odpowiedzi, ale przynajmniej w Visual Studio 2012 (w zestawie Express!) Możesz po prostu przypisać własne polecenie klawiaturowe, aby przejść do pliku nagłówkowego (UWAGA: działa tylko w jedną stronę - nie możesz iść niestety wróć do pliku źródłowego ...)

  1. Przejdź do Narzędzia / Opcje / Środowisko / Klawiatura.
  2. Znajdź następujące polecenie: EditorContextMenus.CodeWindow.GoToHeaderFile
  3. Przypisz dowolną kombinację klawiszy (działa Alt-S)
  4. Zysk

Nie jestem pewien, w których wersjach VS to działa, ale nie wymaga żadnych dodatków i wydaje się, że działa przynajmniej w jednym kierunku.

aardvarkk
źródło
W Visual Studio 2013 istnieje polecenie o nazwie EditorContextMenus.CodeWindow.ToggleHeaderCodeFile, które robi dokładnie to, przełącza między plikami .h i .cpp.
Jaanus Varus
3

Jestem fanem Visual Assist za robienie tego. Nie jest tani, ale zapewnia o wiele większą funkcjonalność niż przełączanie między nagłówkiem a źródłem. Używam również jego otwartego pliku w projektach i funkcjach przeglądania klas. Oczywiście makro jest darmowe ...

JohnO
źródło
2

W przypadku programu Visual Studio 2013, jak wspominali inni, jest to polecenie o nazwie:

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

i ma jako domyślną kombinację klawiszy: Ctrl+ K, Ctrl+ O, ale można ją zmienić, jeśli wprowadzisz nową kombinację klawiszy, którą lubisz w

Naciśnij klawisze skrótu:

pod

Narzędzia -> Opcje -> Środowisko -> Klawiatura .

Możesz więc wybrać niestandardową kombinację klawiszy, ponieważ moim ulubionym przełącznikiem .h do .cpp jest Ctrl+ Tab.

meJustAndrew
źródło
1

Pomoc wizualna nie obsługuje również wersji Visual Studio Express. Więc utkniesz z makrem, jeśli używasz tego IDE>

Fion
źródło
0

W Visual Studio 2008 to Alt+ O.

Marek Szanyi
źródło
8
Musisz mieć zainstalowany Visual Assist - to jest powiązanie klawiszy polecenia Visual Assist.
sean e
0

W swojej (nie) skończonej mądrości firma MS zdecydowała się usunąć makra w MSVS 2012, więc powyższe makro nie będzie działać.

W przypadku MSVS 2012 znalazłem to:

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

Jest wysoce konfigurowalny + jeśli chcesz pomóc go ulepszyć, możesz to zrobić na GitHub.

Csimbi
źródło
0

W Visual Studio 2013 to ALT+O

Sagi Sulimani
źródło