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 ++?


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


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


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


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


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).


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).


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.


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!


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.


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 ...



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.


1

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


0

W Visual Studio 2008 to Alt+ 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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.