2009-07-08 22 views
110

Escenario: He abierto Vim y pegué un texto. Abrí una segunda pestaña con :tabe y pegué otro texto allí.Diff dos pestañas en Vim

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

Lo más parecido que puedo encontrar es "diferir el búfer actual contra un archivo", pero no diff en dos búferes abiertos pero no guardados.

+1

¿cuál es el comando tabe? – hhafez

+1

@hhafez - abre un nuevo búfer en una nueva pestaña – Rook

+3

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

Respuesta

176

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

Esto es lo que suele hacer:

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

El comando :vnew divide verticalmente la vista actual para que pueda abrir el segundo archivo allí. El comando :diffthis (o short: :difft) se aplica luego a cada vista.

+4

Ah, yo tampoco sabía nada de 'vnew', ¡buen consejo! – dukedave

+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.txt' y noquearlo. – ruffin

+8

Me acabas de volar la cabeza. Mi vida nunca será la misma después de ': diffthis'. Muchas gracias. ¡Gracias! –

37

sugeriría probar :diffthis o :diffsplit

+10

': vert diffsplit' hace una vista de diferencias más tradicional que sin': vert' – ephemient

+7

Puede: establecer diffopt + = vertical para hacer: vert por defecto. – graywh

+3

Además, para desplazar dos ventanas simultáneamente: ': establecer scrollbind' en ambos. –

20

Cuando se tienen dos archivos abiertos en splitt vertical, dirigido

:windo diffthis

+6

use '' ': diffoff''' para desactivar el modo diff –

+1

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

0

El contenido de todas las pestañas están dentro de las memorias intermedias. Mira las memorias intermedias:

:buffers 

Encuentra el número correcto para el contenido que debe ser diffed con su contenido pestaña actual.

Abrir el tampón dentro de la pestaña actual (tampón número Fe 4)

:sb 4 

O hacer por visión vertical:

:vertical sb 4 

A continuación, puede sencilla diff al contenido con

:windo diffthis 

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

:windo diffoff 
Cuestiones relacionadas