C'è una scorciatoia per spostarsi tra l'intestazione e il file di origine in VC ++?


112

Questa è una funzionalità a cui mi sono abituato in Eclipse ( Ctrl+ Tab). Esiste un equivalente in Visual C ++?


Vedi anche questa domanda
idbrii

@ LưuVĩnhPhúc Quando ti trovi in ​​un'intestazione o in un codice sorgente in Eclipse, premi Alt-Tab ed Eclipse dovrebbe passare dalla sorgente all'intestazione, supponendo che il progetto sia stato indicizzato correttamente.
MrMas

Risposte:


138

In Visual Studio 2013 e versioni successive è disponibile una scorciatoia da tastiera predefinita per questo: Ctrl+ K, Ctrl+ O (sarà necessario tenere premuto Ctrl e digitare ko e quindi rilasciare Ctrl )

Nelle versioni precedenti, vedere:

Visual Studio Macro per passare dai file CPP a quelli H.

o

Apri il file corrispondente in Visual Assist


2
Visual Assist è un ottimo strumento - Lo consiglierei a tutti gli sviluppatori che utilizzano MSVC
Stephen Nutt

10
Per gli utenti pigri di VisualAssist:Alt + O
nimcap

2
qualcuno ha una soluzione per VS2013?
Shaun Rowan


3
Ok, colpa mia. Non mi rendevo conto che Ctrl + K e Ctrl + O è in realtà un SINGOLO comando di scelta rapida; non due opzioni uguali. Potrebbe valere la pena menzionarlo nella risposta per le persone che non conoscono VS :)
Petr Peller

31

In Visual Studio 2013 una scorciatoia da tastiera predefinita per questo è Ctrl+ K, Ctrl+O


non funziona per me.2013 Community Edition. Impostazioni generali. Qual è il nome del comando nella finestra Personalizza / Tastiera?
Jurlie

12
Nome comando:EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
codekaizen

24

Puoi aggiungere questa macro alla tua configurazione VS (tramite Strumenti -> Macro -> Esplora macro) quindi assegnargli un tasto di scelta rapida (tramite Strumenti -> Opzioni -> Ambiente -> Tastiera).

L'ho appena scritto (volevo provarlo per anni!) Ma sembra funzionare finora, sia in VS2008 che in VS2010.

Poiché si tratta di una macro, puoi modificarla per includere qualsiasi regola desideri (ad esempio, cercare in altre cartelle o regole di denominazione speciali se hai un'unica intestazione condivisa da più file cpp o simili).

Ecco la macro (sono sicuro che potrebbe essere scritta meglio; non ho familiarità con gli oggetti VS e ho realizzato solo che le macro stavano usando .Net a metà della scrittura della cosa :)):

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

Ecco uno screenshot (molto ampio :)) che mostra come dovrebbero apparire l'editor di macro e le finestre di dialogo dei tasti di scelta rapida / opzioni, per aiutare coloro che non li conoscono:

inserisci qui la descrizione dell'immagine


1
Un altro trucco di macro VS preferito: registra una macro per collegare il debugger all'exe su cui stai sempre lavorando, quindi incollala sulla barra degli strumenti. Allegato con un clic a quel processo in esecuzione ogni volta che è necessario eseguirne il debug.
Leo Davidson

Wow è fantastico! Funziona meglio del plug-in Nifty Solutions, perché il plug-in può passare solo tra .h e .cpp, non passa da .hpp a .cpp
j00hi

Ma dove mettere la macro? Per qualche motivo il mio VS2010 ha già una macro "Modulo1" ... quindi ho fatto doppio clic per modificarla e ho inserito il codice della macro all'interno di "Modulo pubblico Modulo1". Da lì Strumenti => Opzioni => Ambiente => Tastiera per impostare una scorciatoia nell'Editor di testo.
Qwertie

Ottimo, testato e funzionante. Risposta pubblicata nel novembre 2010 - Funziona ancora nel luglio 2012. Perfetto!
rptr

1
Alex: le macro sono globali per Visual Studio. Sono salvati in "progetti macro" (che consentono di salvare e caricare gruppi di macro) ma quelli non sono correlati al solito tipo di soluzione / progetto, per quanto ne so. Ho diverse macro definite nel progetto macro predefinito che sono disponibili prima (e dopo) che apro qualsiasi soluzione o progetto.
Leo Davidson

9

Prova PhatStudio . È gratuito e viene fornito con un facile programma di installazione.

  • ALT+ S= Passa dal file di intestazione al file di origine

  • ALT+ O= Apri un file (supporta la ricerca istantanea tramite digitazione, come il menu di avvio in Windows Vista / 7).


Grazie, questa è la soluzione più semplice del gruppo e anche gratuita.
Russell Davis,

8

Prova Visual Assist, che mette in mostra questa caratteristica (tra le altre):

http://www.wholetomato.com/

Le funzionalità di esplorazione del codice - di cui lo scambio di intestazione / cpp è una parte - sono davvero buone.

(Ho anche valutato molto le sue caratteristiche intellisense e di refactoring, ma non tutti quelli con cui ho parlato sono d'accordo con me.)

EDIT: appena ricordato, anche il plug-in Nifty Solution fa questo, oltre a un'altra cosa simile a Visual Assist, anche se nient'altro, e sono gratuiti:

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

(Anche il plug-in Force del ragazzo è fantastico. Molto meglio della spazzatura VSSCC predefinita.)


Darò un'occhiata a Visual Assist. Avevo pensato che fosse solo per i linguaggi .NET.
Nate

5

In Visual Studio 2008 e 2010, puoi fare clic con il pulsante destro del mouse sul tuo file .cpp e scegliere Vai al file di intestazione ... che ti porterà in una direzione. Per l'altra direzione, se fai clic con il pulsante destro del mouse su qualcosa che stai dichiarando nell'intestazione e scegli Vai a definizione, ciò ti porterà nell'altra direzione. Potrebbe essere necessario passare attraverso una finestra di dialogo per la risoluzione dell'ambiguità se si sceglie il costruttore, perché il nome della funzione corrisponde al nome della classe, ma se si sceglie qualcos'altro, andrai direttamente dove vuoi. So che questo è un approccio a due clic, piuttosto che una sequenza di tasti, ma fa quello che vuoi.


5

Se posizioni il mouse su una dichiarazione di funzione nell'intestazione e premi F12, il file cpp verrà aperto alla definizione del file cpp ... Uso ampiamente questa funzione!


5

Non vedo questa risposta qui, ma almeno in Visual Studio 2012 (Express incluso!), Puoi semplicemente assegnare il tuo comando da tastiera per andare al file di intestazione (NOTA: va solo in un modo - non puoi andare torna al file sorgente purtroppo ...)

  1. Vai a Strumenti / Opzioni / Ambiente / Tastiera.
  2. Trova il seguente comando: EditorContextMenus.CodeWindow.GoToHeaderFile
  3. Assegna la combinazione di tasti che desideri (Alt-S funziona)
  4. Profitto

Non sono sicuro in quale versione di VS funzioni, ma non richiede alcun componente aggiuntivo e sembra che funzioni in almeno una direzione.


In Visual Studio 2013 è disponibile un comando chiamato EditorContextMenus.CodeWindow.ToggleHeaderCodeFile che fa esattamente questo, alterna tra i file .h e .cpp.
Jaanus Varus


3

Sono un fan di Visual Assist per farlo. Non è economico ma fornisce molte più funzionalità rispetto al passaggio tra header e source. Uso molto anche il suo file aperto nelle funzionalità di esplorazione di progetti e classi. Ovviamente la macro è gratuita ...



2

Per Visual Studio 2013, come menzionato da altri, è il comando denominato:

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

e ha come combinazione di tasti predefinita: Ctrl+ K, Ctrl+ O, ma può essere modificata se si introduce la nuova combinazione di tasti che ti piace nel

Premere i tasti di scelta rapida:

sotto

Strumenti -> Opzioni -> Ambiente -> Tastiera .

Quindi puoi scegliere una combinazione di tasti personalizzata poiché la mia preferita per il passaggio da .h a .cpp è Ctrl+ Tab.


1

Inoltre, l'assistenza visiva non supporta le edizioni di Visual Studio Express. Quindi sei bloccato con la macro se stai usando quell'IDE>


0

In Visual Studio 2008 è Alt+ O.


8
Devi avere installato Visual Assist: questa è l'associazione di tasti del comando di Visual Assist.
sabato

0

Nella loro saggezza (in) finita, MS ha deciso di rimuovere le macro in MSVS 2012, quindi la macro sopra non funzionerà.

Per MSVS 2012, ho trovato questo:

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

È altamente configurabile + se vuoi contribuire a migliorarlo, puoi farlo su GitHub.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.