Cambiar el comportamiento de Ctrl + Tab para moverse entre documentos en Visual Studio

StackOverflow https://stackoverflow.com/questions/21027

  •  09-06-2019
  •  | 
  •  

Pregunta

¿Es posible cambiar cómo Control + Pestaña y Cambio + Control + Pestaña ¿Trabajar en Visual Studio?He desactivado la ventana emergente del navegador porque solo quiero cambiar entre elementos en el control de pestañas.Mi problema es la inconsistencia de lo que hace el cambio al documento anterior y siguiente.

Todos los demás programas que utilizan un control de pestañas para documentos abiertos que he visto utilizan Control + Pestaña para moverse de izquierda a derecha y Cambio + Control + Pestaña para ir de derecha a izquierda.Visual Studio rompe esto con su salto a la última pestaña seleccionada.Nunca puedes saber en qué documento terminarás y nunca es igual dos veces.

Es muy contradictorio.¿Es esta una forma sutil de animar a todos a tener sólo dos documentos abiertos a la vez?


Digamos que tengo algunos archivos abiertos.Estoy trabajando en uno y necesito ver qué hay en la siguiente pestaña a la derecha.En todas las demás aplicaciones sobre la faz de la Tierra, Control + Pestaña me llevará allí.Pero en Visual Studio, no tengo idea de a cuál de las otras pestañas me llevará.Si sólo tengo dos documentos abiertos, esto funciona muy bien.Tan pronto como llegue a tres o más, todas las apuestas se cancelan en cuanto a a qué pestaña Visual Studio ha decidido enviarlo.

El problema con esto es que no debería tener que pensar en la herramienta, debería pasar a un segundo plano y debería estar pensando en la tarea.El comportamiento actual de la pestaña me sigue sacando de la tarea y me obliga a prestar atención a la herramienta.

¿Fue útil?

Solución

En Visual Studio 2015 (así como en versiones anteriores de VS, pero debes instalar Herramientas eléctricas de productividad si está utilizando VS2013 o inferior), hay dos comandos nuevos en Visual Studio:

Ventana.SiguientePestaña yVentana.PestañaAnterior

Simplemente ve a reasignarlos desde Control+Alt.+Página arriba/Control+Alt.+Página abajo a Control+Pestaña/Control+Cambio+Pestaña en:

Menú Herramientas -> Opciones -> Ambiente -> Teclado

Nota:En versiones anteriores, como Visual Studio 2010, Window.NextTab y Window.PreviousTab se llamaban Ventana.NextDocumentWellTab yVentana.PreviousDocumentWellTab.

Otros consejos

Visual Studio 2010 tiene incorporada una manera de resolver esto.

Por defecto, Control+Pestaña y Control+Cambio+Pestaña están asignados a Window.[Previous/Next]..Document, pero puedes, a través de

Tools -> Options -> Environment -> Keyboard,

eliminar esas asignaciones de claves y reasignarlas a Window.[Next/Previous]Tab para agregar el comportamiento deseado.

se puede cambiar, al menos en VS 2012 (creo que debería funcionar también para 2010).

1) TOOLS > Options > Environment > Keyboard

(Sí, HERRAMIENTAS, ¡es VS2012!) Ahora tres atajos para verificar.

2) Window.NextDocumentWindow - Puedes llegar allí rápidamente escribiendo en el panel de búsqueda en la parte superior.Ahora este es tu enemigo.Quítalo si no te gusta.Cámbialo por otra cosa (y no olvides el Asignar Botón) si quieres tener el tuyo propio, pero recuerda ese atajo sea lo que sea al final.Será útil más adelante.

(Quiero decir que este es el acceso directo que recuerda tu última pestaña)

enter image description here

3) Ahora busca Window.NextDocumentWindowNav - Esto es lo mismo que arriba pero muestra una vista previa de las pestañas abiertas (puedes navegar a otras ventanas demasiado rápido con esta ventana emergente).Aunque nunca encontré esto útil.Haga todo lo mencionado en el paso 2 (no olvide recordar).

4) Window.NextTab - tu poción mágica.Esto le permitiría recorrer las pestañas en orden de avance.Puede ser que quieras CONTROL+PESTAÑA?De nuevo el paso 2 y recordar.

5) Ahora coloque el cursor en el Presione las teclas de método abreviado: cuadro de texto (no importa lo que esté seleccionado actualmente, no vas a Asignar esta vez) y escriba el primero de los tres (o dos o uno) atajos.

enter image description here

Verás Acceso directo utilizado actualmente por: listado.Asegúrese de no tener ninguna entrada duplicada para el acceso directo.En la foto no hay entradas duplicadas.En caso de que tenga (una rareza), diga X, luego vaya a X y elimine el acceso directo.Repita este paso también para otros atajos.

6) Ahora repite 1-5 para Previous atajos también (preferiblemente agregando Cambio).

7) Bonificación:Seleccione el esquema de mapeo VS2005 (en la parte superior del mismo cuadro), de modo que ahora obtendrá F2 para Rebautizar miembros y no CONTROL+R+R, y F7 para Ver código y no CONTROL+ALTA+0.

Soy de la opinión de que VS lo ha hecho bien de forma predeterminada.Me resulta extremadamente útil que VS recuerde lo que usé por última vez y facilite el cambio, de forma muy parecida a lo que hace el propio sistema operativo (en ALTA+PESTAÑA).Mi navegador también hace lo mismo de forma predeterminada (Opera), aunque sé que Firefox se comporta de manera diferente.

En Visual Studio 2012 o posterior (2013, 2015, 2017...):

  1. Navega por el menú Herramientas/Opciones/Entorno/Teclado.
  2. Busque el comando 'Window.NextTab', establezca el acceso directo en Control+Pestaña
  3. Busque el comando 'Window.PreviousTab', establezca el acceso directo en Control+Cambio+Pestaña

enter image description here

Navegar a la publicación del blog. Macro que elimina la estupidez de la pestaña Visual Studio y hacer uso de la macro.Después de aplicar la macro a su instalación de Visual Studio, puede vincularles sus atajos de teclado favoritos.También observe la corrección del registro en los comentarios para no mostrar el globo de macro, ya que pueden volverse molestos después de un tiempo.

Después de un par de horas de búsqueda encontré una solución para cambiar entre documentos abiertos usando CONTROL+PESTAÑA que se mueven de izquierda a derecha y CAMBIO+ CONTROL+ PESTAÑA para ir de derecha a izquierda.

En resumen necesitas copiar y pegar esta macro:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module TabCtrl

Public Sub TabForward()
    Dim i As Integer
    Dim activateNext As Boolean = False

    For i = 1 To DTE.Windows.Count
        If DTE.Windows().Item(i).Kind = "Document" Then

            If activateNext Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If

            If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
                activateNext = True
            End If
        End If
    Next

    ' Was the last window... go back to the first
    If activateNext Then
        For i = 1 To DTE.Windows.Count
            If DTE.Windows().Item(i).Kind = "Document" Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If
        Next
    End If
done:

End Sub

Public Sub TabBackward()
    Dim i As Integer
    Dim activateNext As Boolean = False

    For i = DTE.Windows.Count To 1 Step -1
        If DTE.Windows().Item(i).Kind = "Document" Then

            If activateNext Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If

            If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
                activateNext = True
            End If
        End If
    Next

    ' Was the first window... go back to the last
    If activateNext Then
        For i = DTE.Windows.Count To 1 Step -1
            If DTE.Windows().Item(i).Kind = "Document" Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If
        Next
    End If
done:

End Sub

End Module

La macro proviene de:www.mrspeaker.net/2006/10/12/tab-un-stupidifier/

Si nunca agrega una macro a Visual Studio, hay un enlace muy útil sobre cómo hacerlo. hazlo.

La filosofía del orden de pestañas de Visual Studio es muy contradictoria ya que el orden de las pestañas mostradas difiere de la lógica de cambio de pestañas, lo que representa el orden de las pestañas. completamente inutil.

Entonces, hasta que surja una mejor solución, cambie el diseño de la ventana (en Entorno->General) de documentos con pestañas a documentos múltiples;No cambiará el comportamiento, pero reduce la confusión causada por las pestañas.

¡De esa manera también encontrarás más útil el DocumentWindowNav!

Ctrl + Alt. + Re Pág o AvPág Los atajos funcionaron para alternar la pestaña siguiente/anterior fuera del cuadro para mí...

Estoy 100% de acuerdo con Jeff.

He trabajado en Borland C++ Builder durante varios años y una de las características que más extraño es el orden "correcto" de tabulación de documentos con Control-Pestaña.Como dijo Jeff: "El comportamiento actual de la pestaña me sigue sacando de la tarea y me obliga a prestar atención a la herramienta. "Es exactamente lo que siento al respecto y estoy muy sorprendido de que no haya mucha gente quejándose de esto.

Creo Control-F6 - NextDocumentWindowNav: navega por los documentos según la hora de la última activación del documento.Este comportamiento se parece mucho a cómo se comportaban las aplicaciones MDI en los viejos tiempos.

Teniendo esto en cuenta, suelo utilizar Control+F6 para cambiar entre 2 documentos (lo cual es bastante útil para cambiar entre archivos .cpp y .h cuando se trabaja en un proyecto de C++) incluso cuando hay más de 2 documentos abiertos actualmente.Por ejemplo, si tiene 10 documentos abiertos (Tab1, Tab2, Tab3, ...., Tab10), hago clic en Tab1 y luego en Tab2.Cuando lo hago Control+F6 y suelte las teclas, saltaré a la pestaña 1.Prensado Control+F6 nuevamente me llevará de regreso a la Tab2.

Supongo que quieres lo que VSS llama Siguiente(Anterior)DocumentWindow.Por defecto, está activado Ctrl(-Mayús)-F6 en mi VSS 8.En Ctrl(-Mayús)-Tab ellos tienen Next(Previous)DocumentWindowNav.Puede cambiar las asignaciones de teclas a través de Herramientas/Opciones/Teclado.

En la sucursal de registro:HKEY_CURRENT_USER Software Microsoft VisualStudio 9.0 Agregar dWord llamado "usemRudoCordering" con un valor de 1.Ordenará los documentos utilizados más recientemente y se colocarán a la izquierda.No es perfecto, pero es mejor que el mal comportamiento predeterminado.

No uso Visual Studio (si, de verdad, no lo uso), pero AutoHotkey Puede reasignar cualquier tecla de acceso rápido globalmente o en una aplicación particular:

#IfWinActive Microsoft Excel (application specific remapping)

; Printing area in Excel (@ Ctrl+Alt+A)
^!a::
Send !ade
return

#IfWinActive


$f4::
; Closes the active window (make double tapping F4 works like ALT+F4)
if f4_cnt > 0 
{
    f4_cnt += 1
    return
}

f4_cnt = 1
SetTimer, f4_Handler, 250
return

f4_Handler:
SetTimer, f4_Handler, off

if (f4_cnt >= 2)    ; Pressed more than two times
{   
    SendInput !{f4}
} else {
    ; Resend f4 to the application
    Send {f4}
}

f4_cnt = 0
return

Estas son dos reasignaciones de mi script principal de AutoHotKey.Creo que es una excelente herramienta para este tipo de tareas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top