¿Hay un atajo para moverse entre el encabezado y el archivo fuente en VC ++?


112

Esta es una característica a la que me he acostumbrado en Eclipse ( Ctrl+ Tab). ¿Existe un equivalente en Visual C ++?


Vea también esta pregunta
idbrii

@ LưuVĩnhPhúc Cuando esté en un encabezado o código fuente en Eclipse, presione Alt-Tab y Eclipse debería cambiar entre el origen y el encabezado, asumiendo que tiene el proyecto indexado correctamente.
MrMas

Respuestas:


138

En Visual Studio 2013 y versiones posteriores, hay un atajo de teclado predeterminado para esto: Ctrl+ K, Ctrl+ O (Deberá mantener presionada la tecla Ctrl y escribir ko y luego soltar Ctrl )

En versiones anteriores, consulte:

Macro de Visual Studio para cambiar entre archivos CPP y H

o

Abrir archivo correspondiente en Visual Assist


2
Visual Assist es una gran herramienta; la recomendaría a todos los desarrolladores que utilicen MSVC
Stephen Nutt

10
Para usuarios perezosos de VisualAssist:Alt + O
nimcap

2
¿Alguien tiene una solución para VS2013?
Shaun Rowan


3
Ok, mi mal. No me di cuenta de que Ctrl + K & Ctrl + O es en realidad un comando de acceso directo ÚNICO; no dos opciones iguales. Vale la pena mencionarlo en la respuesta para las personas que son nuevas en VS :)
Petr Peller

31

En Visual Studio 2013, un atajo de teclado predeterminado para esto es Ctrl+ K, Ctrl+O


no funciona para mí. 2013 Community Edition. Configuración general. ¿Qué es el nombre de comando en la ventana Personalizar / Teclado?
Jurlie

12
Nombre del comando:EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
codekaizen

24

Puede agregar esta macro a su configuración de VS (a través de Herramientas -> Macros -> Explorador de macros) y luego asignarle una tecla de acceso rápido (a través de Herramientas -> Opciones -> Entorno -> Teclado).

Lo acabo de escribir (¡he tenido la intención de probar esto durante años!) Pero parece funcionar hasta ahora, tanto en VS2008 como en VS2010.

Como es una macro, puede editarla para incluir las reglas que desee (por ejemplo, buscar en otras carpetas o reglas especiales de nomenclatura si tiene un solo encabezado compartido por varios archivos cpp o similares).

Aquí está la macro (estoy seguro de que podría estar mejor escrita; no estoy familiarizado con los objetos VS y solo me di cuenta de que las macros estaban usando .Net a la mitad de la escritura :)):

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

Aquí hay una captura de pantalla (muy amplia :)) que muestra cómo deberían verse el editor de macros y los cuadros de diálogo de teclas de acceso rápido / opciones, para ayudar a quienes no están familiarizados con ellos:

ingrese la descripción de la imagen aquí


1
Otro truco favorito de macro de VS: grabe una macro de adjuntar el depurador al archivo ejecutable en el que siempre está trabajando, luego péguelo en la barra de herramientas. Archivo adjunto de un clic a ese proceso en ejecución siempre que necesite depurarlo.
Leo Davidson

¡Wow eso es genial! Funciona mejor que el complemento Nifty Solutions, porque el complemento solo puede cambiar entre .h y .cpp, no cambia de .hpp a .cpp
j00hi

¿Pero dónde poner la macro? Por alguna razón, mi VS2010 ya tiene una macro "Module1" ... así que hice doble clic para editarla e inserté el código de macro dentro de "Public Module Module1". Desde allí Herramientas => Opciones => Entorno => Teclado para configurar un atajo en el Editor de texto.
Qwertie

Excelente, probado y funcionando. Respuesta publicada en noviembre de 2010: todavía funciona en julio de 2012. ¡Perfecto!
rptr

1
Alex: Las macros son globales para Visual Studio. Se guardan en "proyectos macro" (que le permiten guardar y cargar grupos de macros) pero no están relacionados con el tipo habitual de solución / proyecto, hasta donde yo sé. Tengo varias macros definidas en el proyecto de macro predeterminado que están disponibles antes (y después) de que abra cualquier solución o proyecto.
Leo Davidson

9

Prueba PhatStudio . Es gratis y viene con un instalador sencillo.

  • ALT+ S= Cambiar entre encabezado / archivo de origen

  • ALT+ O= Abrir un archivo (admite la búsqueda instantánea escribiendo, como el menú de inicio en Windows Vista / 7).


Gracias, esta es la solución más sencilla del grupo y también gratuita.
Russell Davis

8

Prueba Visual Assist, que tiene esta misma función (entre otras):

http://www.wholetomato.com/

La funcionalidad de exploración de código, de la cual el intercambio de encabezado / cpp es una parte, es realmente buena.

(También califiqué sus características de intellisense y refactorización, pero no todos con los que he hablado están de acuerdo conmigo).

EDITAR: recién recordado, el complemento Nifty Solution también hace esto, además de otra cosa útil similar a Visual Assist, aunque nada más, y son gratis:

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

(El complemento forzoso del tipo también es genial. Mucho mejor que la basura predeterminada de VSSCC).


Le daré un vistazo a Visual Assist. Había asumido que era solo para lenguajes .NET.
Nate

5

En Visual Studio 2008 y 2010, puede hacer clic derecho en su archivo .cpp y elegir Ir al archivo de encabezado ... que lo llevará en una dirección. Para la otra dirección, si hace clic con el botón derecho en algo que está declarando en el encabezado y elige Ir a definición, lo llevará en la otra dirección. Es posible que tenga que pasar por un diálogo de resolución de ambigüedad si elige el constructor, porque el nombre de la función coincide con el nombre de la clase, pero si elige cualquier otra cosa, irá directamente a donde quiera. Sé que este es un enfoque de dos clics, en lugar de una pulsación de tecla, pero hace lo que quieres.


5

Si coloca el mouse sobre una declaración de función en el encabezado y presiona F12, el archivo cpp se abrirá en la definición del archivo cpp ... ¡Uso esta función ampliamente!


5

No veo esta respuesta aquí, pero al menos en Visual Studio 2012 (¡Express incluido!), Puede simplemente asignar su propio comando de teclado para ir al archivo de encabezado (NOTA: Solo va en una dirección, no puede ir de vuelta al archivo de origen, lamentablemente ...)

  1. Vaya a Herramientas / Opciones / Entorno / Teclado.
  2. Busque el siguiente comando: EditorContextMenus.CodeWindow.GoToHeaderFile
  3. Asigne la combinación de teclas que desee (Alt-S funciona)
  4. Lucro

No estoy seguro en qué versiones de VS funciona esto, pero no requiere ningún complemento y parece funcionar en al menos una dirección.


En Visual Studio 2013 hay un comando llamado EditorContextMenus.CodeWindow.ToggleHeaderCodeFile que hace exactamente eso, alterna entre archivos .hy .cpp.
Jaanus Varus


3

Soy fanático de Visual Assist por hacer esto. No es barato, pero proporciona mucha más funcionalidad que cambiar entre encabezado y fuente. También utilizo mucho su archivo abierto en las funciones de exploración de proyectos y clases. Por supuesto que la macro es gratis ...



2

Para Visual Studio 2013, como lo mencionaron otros, es el comando llamado:

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

y tiene como combinación de teclas por defecto: Ctrl+ K, Ctrl+ O, pero se puede cambiar si introduces la nueva combinación de teclas que te guste en el

Presione las teclas de atajo:

debajo

Herramientas -> Opciones -> Entorno -> Teclado .

Por lo tanto, puede elegir una combinación de teclas personalizadas, ya que mi favorito para cambiar de .h a .cpp es Ctrl+ Tab.


1

Visual Assist tampoco es compatible con las ediciones Express de Visual Studio. Entonces está atascado con la macro si está usando ese IDE>


0

En Visual Studio 2008 es Alt+ O.


8
Debe tener Visual Assist instalado; esa es la combinación de teclas del comando Visual Assist.
sean e

0

En su sabiduría (in) finita, MS decidió eliminar macros en MSVS 2012, por lo que la macro anterior no funcionará.

Para MSVS 2012, encontré esto:

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

Es altamente configurable + si quieres ayudar a mejorarlo, puedes hacerlo en GitHub.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.