it-swarm.com.de

Gibt es eine Verknüpfung zwischen Header und Quelldatei in VC ++?

Dies ist eine Funktion, an die ich mich in Eclipse gewöhnt habe (Ctrl+Tab). Gibt es eine Entsprechung in Visual C++?

98
JeffV

In Visual Studio 2013 und höher gibt es hierfür eine Standardtastenkombination: Ctrl+KCtrl+O (Sie müssen Ctrl gedrückt halten und ko eingeben und dann Ctrl loslassen. ))

In früheren Versionen finden Sie unter:

Visual Studio-Makro zum Wechseln zwischen CPP- und H-Dateien

oder

Entsprechende Datei in Visual Assist öffnen

121
Kyle Alons

In Visual Studio 2013 ist dies eine Standardtastenkombination Ctrl+KCtrl+O

30
Anton K

Sie können dieses Makro zu Ihrer VS-Konfiguration hinzufügen (über Extras -> Makros -> Makro-Explorer) und dann einen Hotkey zuweisen (über Extras -> Optionen -> Umgebung -> Tastatur).

Ich habe es gerade geschrieben (wollte das schon seit Ewigkeiten versuchen!), Aber es scheint bisher zu funktionieren, sowohl in VS2008 als auch in VS2010.

Da es sich um ein Makro handelt, können Sie es so bearbeiten, dass es die gewünschten Regeln enthält (z. B. das Durchsuchen anderer Ordner oder spezielle Benennungsregeln, wenn Sie einen einzigen Header verwenden, der von mehreren CPP-Dateien oder ähnlichem gemeinsam genutzt wird).

Hier ist das Makro (ich bin sicher, es könnte besser geschrieben werden; ich bin mit den VS-Objekten nicht vertraut und habe nur realisiert, dass Makros .Net ungefähr zur Hälfte durch das Schreiben des Dings verwendet haben :)):

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

Hier ist ein (sehr breiter :)) Screenshot, der zeigt, wie der Makroeditor und die Dialogfelder für Hotkeys/Optionen aussehen sollten, um denjenigen zu helfen, die nicht mit ihnen vertraut sind:

enter image description here

24
Leo Davidson

Versuchen Sie es mit Visual Assist, das genau diese Funktion bietet (ua):

http://www.wholetomato.com/

Die Code-Browsing-Funktionalität, zu der der Header/cpp-Swap gehört, ist wirklich gut.

(Ich habe auch seine Intelligenz- und Refactoring-Funktionen wirklich bewertet, aber nicht alle, mit denen ich gesprochen habe, hat mir zugestimmt.)

BEARBEITEN: Ich erinnere mich, dass das Nifty Solution Plugin dies auch tut - und noch ein weiteres handliches Visual Assist-ähnliches, nichts anderes - und sie sind kostenlos:

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

(Das Perforce Plugin des Kerls ist auch großartig. Viel besser als der Standard-VSSCC-Müll.)

8

Versuchen Sie PhatStudio . Es ist kostenlos und wird mit einem einfachen Installationsprogramm geliefert.

  • ALT + S = Wechselt zwischen Header/Quelldatei

  • ALT + O = Öffnen Sie eine Datei (unterstützt die sofortige Suche per Eingabe, wie das Startmenü in Windows Vista/7).

8
Tymek

Ich sehe diese Antwort hier nicht, aber zumindest in Visual Studio 2012 (Express enthalten!) Können Sie einfach einen eigenen Tastaturbefehl zuweisen, um in die Header-Datei zu gelangen (HINWEIS: Nur in eine Richtung - Sie können nicht gehen zurück zur Quelldatei leider ...)

  1. Gehen Sie zu Extras/Optionen/Umgebung/Tastatur.
  2. Suchen Sie den folgenden Befehl: EditorContextMenus.CodeWindow.GoToHeaderFile
  3. Weisen Sie die gewünschte Tastenkombination zu (Alt-S funktioniert)
  4. Profitieren

Nicht sicher, in welchen Versionen von VS dies funktioniert, aber es erfordert keine Add-Ins und scheint den Trick in mindestens einer Richtung zu erreichen.

5
aardvarkk

In Visual Studio 2008 und 2010 können Sie mit der rechten Maustaste in Ihre .cpp-Datei klicken und "Gehe zu Header-Datei ..." wählen, was Sie in eine Richtung führt. Wenn Sie in der anderen Richtung mit der rechten Maustaste auf etwas klicken, das Sie in der Kopfzeile deklarieren, und wählen Sie Gehe zu Definition, gelangen Sie in die andere Richtung. Wenn Sie den Konstruktor auswählen, müssen Sie möglicherweise ein Dialogfeld zur Mehrdeutigkeitsauflösung durchlaufen, da der Funktionsname mit dem Klassennamen übereinstimmt. Wenn Sie jedoch etwas anderes wählen, werden Sie direkt dorthin gehen, wo Sie möchten. Ich weiß, dass dies ein Ansatz mit zwei Klicks ist und nicht nur ein Tastendruck, aber er tut, was Sie wollen.

5
Kate Gregory

Wenn Sie den Mauszeiger über eine Funktionsdeklaration im Header positionieren und F12 drücken, wird die cpp-Datei bei der Definition der cpp-Datei geöffnet ... Ich verwende diese Funktion ausgiebig!

4
user206705

Versuchen Sie es mit Switch - es ist ein Add-In, mit dem Sie zwischen Quelle und Header, Code und Designer, XAML und Codebehind usw. wechseln können:

http://www.dwmkerr.com/switch/ oder direkt von Produkte und Erweiterungen für Visual Studio

4
Dave Kerr

Ich bin ein Fan von Visual Assist. Es ist nicht billig, bietet aber viel mehr Funktionalität als das Umschalten zwischen Header und Quelle. Ich benutze die geöffnete Datei auch sehr häufig für Projekt- und Klassenbrowser. Natürlich ist das Makro kostenlos ...

3
JohnO

Es gibt auch ein Makro, das im Whole Tomato-Supportforum aufgeführt ist , das einige weitere Dateizuordnungen enthält.

2
sean e

Für Visual Studio 2013 ist es, wie von anderen erwähnt, der Befehl mit dem Namen:

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

und es hat als Standard Tastenkombination: Ctrl+K,Ctrl+O, aber es kann geändert werden, wenn Sie die neue Tastenkombination einführen, die Ihnen in der gefällt

Drücken Sie die Tastenkombinationen:

unter

Extras -> Optionen -> Umgebung -> Tastatur.

Sie können also eine benutzerdefinierte Tastenkombination auswählen, die mein Favorit für den .h to .cpp-Schalter ist Ctrl+Tab.

2
meJustAndrew

Visual Assist unterstützt auch keine Visual Studio Express-Editionen. Wenn Sie diese IDE verwenden, bleiben Sie also beim Makro hängen

1
Fion

In Visual Studio 2008 ist es Alt + O.

0
Marek Szanyi

In Visual Studio 2013 ist es ALT + O

0
Sagi

In ihrer (in) endlichen Weisheit hat MS beschlossen, Makros in MSVS 2012 zu entfernen, sodass das Makro oben nicht funktioniert.

Für MSVS 2012 habe ich Folgendes gefunden:

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

Es ist in hohem Maße konfigurierbar + Wenn Sie dabei helfen wollen, es zu verbessern, können Sie dies auf GitHub tun.

0
Csimbi