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


112

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


Siehe auch diese Frage
idbrii

@ LưuVĩnhPhúc Wenn Sie sich in Eclipse in einem Header oder Quellcode befinden, drücken Sie Alt-Tab. Eclipse sollte Sie zwischen Quelle und Header wechseln, vorausgesetzt, Sie haben das Projekt ordnungsgemäß indiziert.
MrMas

Antworten:


137

In Visual Studio 2013 und höher gibt es hierfür eine Standardtastenkürzel: Ctrl+ K, Ctrl+ O (Sie müssen Strg gedrückt halten und ko eingeben und dann Strg loslassen )

In früheren Versionen siehe:

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

oder

Öffnen Sie die entsprechende Datei in Visual Assist


2
Visual Assist ist ein großartiges Tool - ich würde es allen Entwicklern empfehlen, die MSVC verwenden
Stephen Nutt

10
Für faule VisualAssist-Benutzer:Alt + O
Nimcap

2
Hat jemand eine Lösung für VS2013?
Shaun Rowan

5
Es ist in VS 2013 integriert
Kyle Alons

3
Ok, mein schlechtes. Wusste nicht, dass Strg + K & Strg + O tatsächlich ein EINZIGER Verknüpfungsbefehl ist; nicht zwei Optionen derselben. Könnte in der Antwort für Leute erwähnen, die neu in VS sind :)
Petr Peller

31

In Visual Studio 2013 lautet die Standardtastaturverknüpfung hierfür Ctrl+ K, Ctrl+O


funktioniert nicht für mich 2013 Community Edition. Allgemeine Einstellungen. Wie lautet der Befehlsname im Fenster "Anpassen / Tastatur"?
Jurlie

11
EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
Befehlsname

24

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

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

Da es sich um ein Makro handelt, können Sie es so bearbeiten, dass es beliebige Regeln enthält (z. B. in anderen Ordnern suchen oder spezielle Namensregeln, wenn Sie einen einzelnen Header haben, 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 nur realisierte Makros verwendeten .Net ungefähr zur Hälfte des Schreibens :)):

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 Makro-Editor und die Hotkey- / Options-Dialoge aussehen sollten, um denjenigen zu helfen, die nicht mit ihnen vertraut sind:

Geben Sie hier die Bildbeschreibung ein


1
Ein weiterer beliebter VS-Makrotrick: Zeichnen Sie ein Makro auf, in dem der Debugger an die Exe angehängt wird, an der Sie immer arbeiten, und kleben Sie ihn dann in die Symbolleiste. Ein-Klick-Anhang zu diesem laufenden Prozess, wann immer Sie ihn debuggen müssen.
Leo Davidson

wow! Das ist toll! Funktioniert besser als das Nifty Solutions Plugin, da das Plugin nur zwischen .h und .cpp wechseln kann und nicht von .hpp nach .cpp wechselt
j00hi

Aber wo soll das Makro platziert werden? Aus irgendeinem Grund hat mein VS2010 bereits ein "Module1" -Makro ... also habe ich doppelt geklickt, um es zu bearbeiten, und den Makrocode in "Public Module Module1" eingefügt. Von dort aus Extras => Optionen => Umgebung => Tastatur, um eine Verknüpfung im Texteditor einzurichten.
Qwertie

Hervorragend, getestet und funktionsfähig. Antwort veröffentlicht im November 2010 - Es funktioniert immer noch im Juli 2012. Perfekt!
RPTR

1
Alex: Makros sind für Visual Studio global. Sie werden in "Makroprojekten" gespeichert (mit denen Sie Gruppen von Makros speichern und laden können), aber diese haben, soweit ich das beurteilen kann, nichts mit der üblichen Art von Lösung / Projekt zu tun. Im Standardmakroprojekt sind mehrere Makros definiert, die verfügbar sind, bevor (und nachdem) ich eine Lösung oder ein Projekt öffne.
Leo Davidson

9

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

  • ALT+ S= Zwischen Header / Quelldatei wechseln

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


Vielen Dank, dies ist die einfachste Lösung und auch kostenlos.
Russell Davis

8

Probieren Sie Visual Assist aus, das genau diese Funktion bietet (unter anderem):

http://www.wholetomato.com/

Die Code-Browsing-Funktionalität - zu der auch der Header / CPP-Austausch gehört - ist wirklich gut.

(Ich habe auch die Intellisense- und Refactoring-Funktionen wirklich bewertet, aber nicht jeder, mit dem ich gesprochen habe, hat mir zugestimmt.)

BEARBEITEN: Ich erinnere mich, dass das Nifty Solution Plugin dies auch tut - plus eine weitere handliche Visual Assist-ähnliche Sache, obwohl sonst nichts - und sie sind kostenlos:

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

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


Ich werde Visual Assist einen Blick geben. Ich hatte angenommen, dass es nur für .NET-Sprachen war.
Nate

5

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, um in eine Richtung zu gelangen. Wenn Sie in der anderen Richtung mit der rechten Maustaste auf etwas klicken, das Sie in der Kopfzeile deklarieren, und "Zur Definition gehen" wählen, gelangen Sie in die andere Richtung. Wenn Sie den Konstruktor auswählen, müssen Sie möglicherweise ein Dialogfeld zur Auflösung von Mehrdeutigkeiten durchlaufen, da der Funktionsname mit dem Klassennamen übereinstimmt. Wenn Sie jedoch etwas anderes auswählen, gehen Sie direkt dorthin, wo Sie möchten. Ich weiß, dass dies ein Zwei-Klick-Ansatz ist und nicht ein Tastendruck, aber er macht das, was Sie wollen.


5

Wenn Sie mit der Maus über eine Funktionsdeklaration in der Kopfzeile fahren und F12 drücken, wird die CPP-Datei bei der Definition der CPP-Datei geöffnet ... Ich verwende diese Funktion ausgiebig!


5

Ich sehe diese Antwort hier nicht, aber zumindest in Visual Studio 2012 (Express enthalten!) Können Sie einfach Ihren eigenen Tastaturbefehl zuweisen, um zur 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 eine beliebige Tastenkombination zu (Alt-S funktioniert)
  4. Profitieren

Ich bin mir nicht sicher, in welchen VS-Versionen dies funktioniert, erfordert jedoch keine Add-Ins und scheint den Trick in mindestens eine Richtung zu tun.


In Visual Studio 2013 gibt es einen Befehl namens EditorContextMenus.CodeWindow.ToggleHeaderCodeFile, der genau das tut und zwischen .h- und .cpp-Dateien umschaltet.
Jaanus Varus


3

Ich bin ein Fan von Visual Assist dafür. Es ist nicht billig, bietet aber viel mehr Funktionen als das Umschalten zwischen Header und Quelle. Ich verwende die geöffnete Datei auch häufig in Funktionen zum Durchsuchen von Projekten und Klassen. Natürlich ist das Makro kostenlos ...



2

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

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

und es hat als Standardkombination von Tasten: Ctrl+ K, Ctrl+ O, aber es kann geändert werden, wenn Sie die neue Tastenkombination einführen, die Sie in der

Drücken Sie die Tastenkombinationen:

unter

Extras -> Optionen -> Umgebung -> Tastatur .

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


1

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


0

In Visual Studio 2008 ist es Alt+ O.


8
Sie müssen Visual Assist installiert haben - das ist die Tastenkombination für den Visual Assist-Befehl.
Sean E

0

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

Für MSVS 2012 habe ich Folgendes gefunden:

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

Es ist hochgradig konfigurierbar + wenn Sie bei der Verbesserung helfen möchten, können Sie dies auf GitHub tun.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.