Diferencia dos pestañas en Vim


121

Escenario: abrí Vim y pegué texto. Abro una segunda pestaña :tabey pego otro texto allí.

Objetivo: Me gustaría una tercera pestaña con una salida equivalente a escribir ambos textos en archivos y abrirlos con vimdiff .

Lo más cercano que puedo encontrar es "comparar el búfer actual con un archivo", pero sin tener diffen cuenta dos búferes abiertos pero no guardados.


1
¿cuál es el comando tabe?
hhafez

1
@hhafez - abre un búfer nuevo en una pestaña nueva
Torre

3
Es la abreviatura de: tabedit, también conocido como: tabnew.
TSomKes

Respuestas:


188

Sugiero abrir el segundo archivo en la misma pestaña en lugar de uno nuevo.

Esto es lo que suelo hacer:

:edit file1
:diffthis
:vnew
:edit file2
:diffthis

El :vnewcomando divide la vista actual verticalmente para que pueda abrir el segundo archivo allí. A continuación, se aplica el comando :diffthis(o abreviado :difft:) a cada vista.


1
Fwiw, MacVim no parece tener esto por defecto, pero creo que debería poder ir a la terminal y escribir vimdiff file1.txt file2.txty noquearse.
ruffin

11
Simplemente me voló la cabeza. Mi vida nunca volverá a ser la misma después :diffthis. Muchas gracias. ¡Gracias!
Justin Force

3
Esto es asombroso. Las edit fileNpartes se pueden reemplazar con solo pegar desde el búfer, lo que le permite diferenciar dos fragmentos de texto sin pegar cada uno en un archivo tmp (algo que meld le permite hacer, pero faltan las herramientas de diferenciación visual en Mac). Me funcionó en MacVim desde el primer momento.
yshavit

38

Sugeriría probar : diffthis o : diffsplit


10
:vert diffsplitlo convierte en un diff-visión más tradicional que sin:vert
ephemient

7
Puede: establecer diffopt + = vertical para hacer: vert el valor predeterminado.
graywh

3
Además, para desplazarse por dos ventanas simultáneamente: :set scrollbinden ambas.
Dmytro Sirenko

No funciona si tengo pestañas, como se pregunta en la pregunta. Si lo hago :diffsplit, obtengo dos búferes conectados.
erik

25

Cuando tenga dos archivos abiertos en división vertical, ejecute

:windo diffthis


8
usar :diffoffpara desactivar el modo diferencial
AB

2
Pero, ¿cómo cambio de dos pestañas a una división vertical?
erik

1

El contenido de todas las pestañas está dentro de los búferes. Mira los búferes:

:buffers

Encuentre el número correcto para el contenido que debe diferir con el contenido de su pestaña actual.

Abra el búfer dentro de su pestaña actual (fe búfer número 4)

:sb 4

O hazlo para vista vertical:

:vertical sb 4

Luego, puede simplemente diferir el contenido con

:windo diffthis

Si terminó el análisis de diferencias, puede ingresar:

:windo diffoff
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.