2012-07-03 11 views
24

A menudo edito archivos largos en vim que tienen bloques de código en lugares dispares en el archivo en el que tengo que ir y venir constantemente. Obviamente, una forma de resolver esto es dividir la ventana con: dividir y editar cada parte en una ventana dividida diferente, y un :w en cualquier ventana guardará todo el archivo. Esto es bueno si tienes una pantalla lo suficientemente grande, pero a veces tengo que usar vim en una computadora portátil de baja resolución y no quiero reducir aún más el espacio de la pantalla dividiendo la ventana.¿Cómo editar el mismo archivo en varias pestañas en vim?

En este caso, lo que realmente me gustaría hacer es editar el archivo en múltiples pestañas, y tratar cada pestaña por separado exactamente como una división de vista separada. Puedo hacer una especie de imitación de esto usando :tabopen <the same filename> una vez que tengo una copia del archivo abierta, pero esto es un poco hacky - no funciona si ya he hecho cambios en el archivo porque vim piensa que estoy abriendo el archivo por segunda vez.

¿Hay una buena manera de obtener el comportamiento que quiero con pestañas en vim?

+4

Otra forma de lograr esto es para marcar lugares en el archivo con 'ma',' mb', etc., y volver a los lugares con '' a '' 'b', etc. –

Respuesta

28

El comando :tab toma un comando como argumento.

Así que usted puede hacer esto:

:tab split 

Esto funcionará incluso si el búfer está modificado, y salvo en cualquiera de las pestañas guarda el archivo, actualizar el estado guardado en ambos.

+8

O': tab sp' para abreviar – Conner

7

Usted puede utilizar el comando :tab:

:[count]tab {cmd}` 

Ejecutar {cmd} y cuando se abre una nueva ventana de abrir una nueva pestaña en su lugar. [...] Cuando se omite [count], la página de pestañas aparece después de la actual. Cuando se especifica [count], la página de nueva pestaña aparece después de la pestaña [count]. Use :0tab cmd para obtener la página de la nueva pestaña como la primera.

Ejemplos:

:tab split   " opens the current buffer in new tab page 
:tab help gt   " opens tab page with help for "gt" 
Cuestiones relacionadas