Abra dos instancias de un archivo en una sola sesión de Visual Studio

555

Tengo un archivo, xyz.cpp . Quiero abrir dos instancias de este archivo en Visual Studio (por cierto, estoy usando Visual Studio 2005). ¿Por qué querría hacerlo? Quiero comparar dos secciones del mismo archivo una al lado de la otra. Conozco soluciones como:

  1. Haga una copia del archivo. Pero el problema es que no es elegante, y no quiero hacer copias cada vez que me enfrento a esto.

  2. Puedo dividir la ventana en dos. El problema con dividirlo es que solo puedo dividirlo horizontalmente. El resultado de una división horizontal es que la mitad derecha de mi pantalla es un espacio en blanco.

Si pudiera dividirlo verticalmente o abrir dos instancias del mismo archivo, aumentaría la cantidad de líneas de código que puedo comparar.

Dechado
fuente
12
Si desea simplemente comparar partes del archivo, puede usar Window | Split que dividirá el archivo horizontalmente desde el medio.
vexe
@vexe perfecto. Exactamente lo que necesitaba. Divide ventanas, ambas editan el mismo archivo.
Vincent P
3
¿Alguna razón por la que no has aceptado la respuesta más votada?
cp.engr
1
@ cp.engr, desde su perfil: "Visto por última vez el 6 de diciembre de 2009 a las 12:41". Es una pena que los usuarios de alta reputación no puedan marcar las respuestas como aceptadas.
Doctor Jones

Respuestas:

904

He aquí cómo hacerlo ...

  1. Seleccione la pestaña de la que desea dos copias
  2. Seleccione el menú VentanaNueva ventana del menú.
  3. Haga clic derecho en la nueva pestaña y seleccione Nuevo grupo de pestañas verticales

Si Nueva ventana no aparece en el menú * Ventana, tenga en cuenta que el comando existe, incluso a partir de Visual Studio 2017. Agréguelo al menú Ventana usando el menú HerramientasPersonalizarComandos . En ese punto, decida dónde colocar el comando Nueva ventana y seleccione Agregar comando .

ACTUALIZADO el "30 de julio de 2018"

En Visual Studio Code versión 1.25.1 y posterior

Camino 1

Simplemente puede hacer clic izquierdo en su archivo en el panel lateral (explorador) y presionar Ctrl+ Enter.

Camino 2

Simplemente haga clic derecho en su archivo en el panel lateral de Visual Studio Code (explorador) y seleccione la primera opción abierta a un lado .

PaulB
fuente
50
Si tiene algo de espacio en la pantalla disponible, como un segundo monitor, también puede arrastrar la nueva pestaña fuera de Visual Studio y verla, por ejemplo, en el segundo monitor.
Artur Carvalho el
44
Solo puede hacer esto para ciertos tipos de archivos ... por ejemplo, no puede tener dos ventanas abiertas en el mismo archivo .xaml. ¡Qué fastidio, porque eso es lo que quiero hacer!
Cplotts
44
@ Shlomi.A. Prueba la respuesta de Luke
Jason S
2
Para XAML en WPF, la opción Nueva ventana simplemente no está allí.
Preza8
2
Este método funciona, pero en mi VS 2010 el acceso directo [Ctrl] [Shift] [N] estaba vinculado a Archivo> Nuevo> Proyecto
usuario1556435
67

Para Visual Basic, HTML y JScript y RDL Expression, la Window > New Windowopción mencionada en la respuesta de PaulB está desactivada. Sin embargo, se puede cambiar una opción en el Registro para habilitar el elemento del menú.

Todos los demás idiomas no se limitan a una sola ventana de código, por lo que puede usar la respuesta de PaulB sin editar el registro.

Habilitar nueva ventana en el registro de Windows. [ 1 ] [ 2 ]

  1. Vaya a la siguiente clave de registro. Este ejemplo es para Basic (Visual Basic), pero la clave también está ahí para HTML, JScript y RDL Expression.

    • SO de 64 bits: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • SO de 32 bits: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. Encuentra el valor Single Code Window Only y realice una de las siguientes acciones:

    • Ponlo a 0
    • Renombrar el valor
    • Elimine el valor (¡ tenga cuidado !)

Esto habilitará el elemento de menú "Nueva ventana", pero aún puede no estar visible en el menú.

Agregar elemento de menú

Para ver realmente el elemento del menú Nueva ventana, tuve que volver a agregarlo al menú:

  • Herramientas> Personalizar ...> Comandos> Agregar comando ...
  • Seleccione 'Barra de menú' y luego seleccione el menú 'Ventana' en el menú desplegable
  • Agregar comando ...> Ventana> Nueva ventana> Aceptar

Restaurar el valor del registro
Copie y pegue esto en el bloc de notas, guárdelo como un archivo .reg e importe el archivo a su registro para restaurar la configuración inicial.

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ Languages ​​\ Language Services \ Basic]
"Solo ventana de código único" = dword: 00000001
Luke Hoffmann
fuente
No es necesario editar el registro para archivos C # ya que el elemento de menú 'Nueva ventana' ya debería estar habilitado para archivos C # (en VS 2010). Solo necesita hacer esto para VB, HTML o JScript. De acuerdo con este informe de problemas de MS Connect, cualquier problema con esto se corrige para VB, solo necesita eliminar o cambiar el nombre de la entrada del registro para habilitar la función.
Jason S
1
Esto también funciona en Visual Basic 2010 Express, estoy feliz de informar. La clave de registro es ligeramente diferente: [HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ VBExpress \ 10.0 \ Languages ​​\ Language Services \ Basic].
evilspoons
No funciona para mi Intenté reiniciar VS2010, le dará otra oportunidad después de reiniciar la computadora ... (quién sabe cómo se leen / almacenan / actualizan las entradas del registro)
Mars Robertson
Acabo de probar esto (supongo que mi clave de registro fue sobrescrita por actualizaciones o algo así). No necesité reiniciar. Cambié la clave con VS2010 ejecutándose, 'Nueva ventana' todavía en gris. Luego cerró VS2010 y abrió VS2010 y está disponible 'Nueva ventana'.
Luke Hoffmann el
3
En VS2010, voltear el bit de registro para JScript permite que se abra una segunda pestaña para un archivo JavaScript (yay), pero nada más que la blancura se representa en cada pestaña (boo).
G-Wiz
18

Abra el archivo (si está utilizando múltiples grupos de pestañas, asegúrese de que su archivo esté seleccionado).

Ventana de menú → Dividir (alternativamente, hay una pequeña protuberancia justo encima de la barra de desplazamiento vertical del editor - tómala y arrástrala hacia abajo)

Esto le brinda dos vistas (horizontales) del mismo archivo. Tenga en cuenta que cualquier acción de edición se reflejará en ambas vistas.

Una vez que haya terminado, tome el divisor y arrástrelo hacia arriba (o en la ventana del menú → Eliminar división ).

Peter Mortensen
fuente
2
(Sri: lo siento, 'horizontal' como en las vistas 'las filas están alineadas ... o una vista encima de la otra). AFAIK, las vistas verticales (de lado a lado) no son posibles.
77
Parece no haber leído OP, donde menciona que es consciente de esto mismo.
Jason S
17

Vaya al menúWindowsNueva ventana :

Ingrese la descripción de la imagen aquí

Kishore Sahasranaman
fuente
Y el premio nobel a la mejor solución en todo el multiverso es para ti @Kishore
Sotiris Zegiannis
9

La respuesta de Luke no funcionó para mí. El comando 'Nueva ventana' ya figuraba en la configuración de personalización, pero no se mostraba en el menú contextual de las pestañas .js, a pesar de eliminar la configuración del registro.

Entonces usé:

Herramientas

Personalizar ...

Teclado...

Desplácese hacia abajo para seleccionar Window.NewWindow

Y presioné y asigné las teclas de acceso directo, Ctrl+ Shift+ W.

Eso funcionó para mí.

==== EDITAR ====

Bueno, 'trabajado' era demasiado fuerte. Mi método abreviado de teclado abre otra pestaña en el mismo archivo de JavaScript, pero no sirve de nada para mostrar el contenido; ¡es solo una ventana blanca vacía! Puede que tengas mejor suerte.

dumbledad
fuente
3
Gracias. Esto funcionó para mí para VS2012 / VB.net. Herramientas abiertas - opciones - (bajo entorno) teclado - seleccione visual basic 6 del menú desplegable - seleccione Window.NewWindow de la lista de comandos - presione ctrl + n, ctrl + w
CodingSlayer
8

Con el archivo abierto, vaya a la ventana de comandos (menú VerOtras ventanasVentana de comandos , o simplemente Ctrl+ Alt+ A)

Tipo:

Window.NewWindow

Y entonces

Window.NewVerticalTabGroup

funcionó para mí (Visual Studio 2017).

O usando menús:

Ventana de menú → Nueva ventana

Ventana de menú → Nuevo grupo de tomas verticales

Gustavo Rossi Muller
fuente
Hiciste que los Lores trabajaran con esto, hijo mío. Gracias.
Andrew
4

Menú de ventana , Nuevo grupo de pestañas horizontales / verticales , creo.

Anton Gogolev
fuente
3
AFA ver, no se puede abrir el mismo archivo en diferentes grupos de pestañas
Gishu
3

Cuando trabajé con Visual Studio 2013 y VB.NET, descubrí que puede personalizar fácilmente el menú y agregar el comando "Nueva ventana". ¡No hay necesidad de meterse con el registro!

Solo Dios sabe por qué Microsoft decidió no incluir el comando para algunos idiomas ...

Miguel
fuente
¡Trabajó fácilmente para mí! Herramientas del menú > Personalizar . Luego, en la pestaña Comandos , seleccione Ventana en el primer menú desplegable, luego haga clic en el botón Agregar comando y ¡listo! (Visual Studio 2019)
cyberponk
3

Para versiones más recientes (como Visual Studio 2017)

  • Seleccione la ventana que desea duplicar.
  • Vaya a la pestaña de la ventana y haga clic en dividir en la parte superior de la lista.
  • Cuando haya terminado, haga clic nuevamente para desactivarlo.
Peter Mortensen
fuente
3
Una ventana dividida en dos mitades no es lo mismo que dos ventanas.
Tipx
1

Para los tipos de archivo, donde el mismo archivo no se puede abrir en un grupo de pestañas verticales (por ejemplo, archivos .vb) puede

  • Abra 2 instancias diferentes de Visual Studio
  • Abra el mismo archivo en cada instancia
  • Cambie el tamaño de las ventanas IDE y colóquelas una al lado de la otra para lograr su diseño.

Sin embargo, si guarda en el disco en una instancia, deberá volver a cargar el archivo cuando cambie a la otra. Además, si realiza ediciones en ambas instancias, deberá resolver en el segundo guardado. Visual Studio le solicita en ambos casos con varias opciones. Simplificará un poco su vida si edita solo en una instancia.

Gishu
fuente
@Odrade - ¿Puede señalarme la respuesta correcta que funciona para todo tipo de archivos ...
Gishu
@ Jason Ok, pero aún así es incorrecto afirmar que no puede abrir el mismo archivo varias veces para realizar una comparación lado a lado. Esto es claramente posible, al menos para archivos .cs.
Odrade
@Odrade Tienes razón. He editado para tratar de corregir eso. Informarle en caso de que desee eliminar comentarios basados ​​en versiones anteriores.
Jason S
@Odrade Probé la respuesta de Luke. Es mucho mejor que abrir dos instancias de VS para usuarios de VB y tiene mi voto a favor.
Jason S
Esta parece ser la única solución alternativa para los archivos html, donde la edición del registro solo da una segunda ventana en blanco
Chris F Carroll
1

No tengo una copia de Visual Studio 2005, pero este proceso funciona en Visual Studio 2008:

  1. Abra xyz.cpp junto con algún otro archivo.
  2. Haga clic derecho en el encabezado de la pestaña y seleccione un nuevo grupo de pestañas verticales.
  3. Haga clic izquierdo en ese otro archivo en el primer grupo de pestañas.
  4. Abra xyz.cpp a través del explorador de soluciones nuevamente.

Ahora debería tener dos instancias de archivo en grupos de pestañas verticales separadas.

si618
fuente
En mi VS2K5 y VS2K8, solo muestra las instancias originales en la segunda pestaña para mí. Esto es si hago doble clic en el Explorador de soluciones, Arrastrar y soltar desde el Explorador de archivos o mediante Archivo | Menú abierto.
Simeon Pilgrim
@Simeon - Eso sucede si no hay otro archivo abierto (segunda parte del paso 1)
si618
Sabe que el archivo original se abre en el otro grupo de pestañas. Quizás esto se relaciona nuevamente con los archivos que permite duplicar.
neoswf
0

Se me ocurrió un truco que podría producir el resultado previsto en la respuesta original.

Si tiene el archivo que desea en dos ventanas en un control de origen, puede hacer clic derecho en el archivo y seleccionar comparar, puede comparar el

Si compara, tendrá una nueva ventana llamada diff, que le muestra el contenido de su archivo.

Por supuesto, esto no es ideal ya que la ventana de diferencias tendrá los colores de diferencias contaminando el texto. Nota: puede comparar el archivo que desea abrir y el archivo vacío, y luego tendrá la ventana en un fondo verde muy feo.

Esto no es perfecto, es un truco, pero fue la única forma en que encontré que realmente tenía el mismo archivo en dos ventanas.

Berserck
fuente