Memorias, ventanas y pestañas en Vim

Este es uno de los capítulos del tutorial Vim, un editor atemporal. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

El título de memorias, ventanas y pestañas en Vim, tiene su razón de ser. En inglés, hablan de buffer que no es mas que una memoria intermedia donde guardas el texto que cargas de un archivo, y que puedes modificar. En este artículo quiero que entiendas la palabra memoria como un buffer. Inicialmente, iba a utilizar texto en memoria a la hora de hablar de buffer, pero pienso que es mas correcto, el uso de memoria y así lo voy a hacer. Y ¿a que viene tanta historia con esto de la memoria y el buffer? Y sobre todo, ¿que tiene que ver con ventanas y pestañas?¿Me estás diciendo que Vim soporta varias pestañas? Pues si, en este nuevo capítulo del tutorial de Vim, quiero hablarte de memorias, ventanas y pestañas en Vim.

Y es que como ya te he adelantado, puedes utilizar varias memorias, ventanas y pestañas en Vim. Y precisamente en este nuevo capítulo, te contaré que es cada uno de estos elementos en Vim, y como los puedes exprimir al máximo para sacarles el máximo provecho.

Memorias, ventanas y  pestañas en Vim

Memorias, ventanas y pestañas en Vim

Lo primero y principal aclarar cada uno de estos conceptos y posteriormente, te indico como puedes utilizar cada uno de ellos y exprimirlos al máximo.

Memorias

Como te decía en la introducción, he traducido buffer por memoria. Y ¿que es una memoria?. Una memoria o buffer no es mas que un lugar donde guardas texto. En esta memoria, no solo puedes guardar el texto sino que también lo puedes editar. De esta manera, cuando lees un archivo de texto, este va a parar a una memoria. Y digo a una mamoria, porque en Vim, no solo hay una memoria disponible, sino que tienes tantas como necesites… no te las acabarás todas.

Sin embargo, una memoria, no solo la puedes iniciar leyendo un archivo, sino que puedes iniciarla vacía. Para ello, tan solo tienes que abrir Vim y empezar a escribir, ahí estás utilizando la memoria por defecto de Vim.

Indicarte que cuando inicias Vim, ya sea cargando un archivo o sin cargar nada, te diriges a la memoria por defecto.

Si quieres saber cuantas memorias tienes que ejecutar el comando :ls o :buffers. Esto te mostrará un listado de las memorias que tienes en marcha en el momento. Por defecto tendrás una única memoria, que es la memoria con la que inicias Vim, salvo que hayas abierto varios archivos a la vez.

Ventanas

Perfecto, ya tienes claro lo que es una memoria, y que en Vim, puedes utilizar tantas memorias como necesites. Pero, entonces ¿que es una ventana? Pues el lugar donde puedes ver el contenido de una memoria. Por supuesto, que no solo puedes verlo, sino que también puedes editarlo.

Así, por defecto, cuando inicias Vim, comenzarás con una memoria y una ventana. Y ahora que ya sabes lo que es una ventana, es el momento de decirte que una memoria puede encontrarse en tres estados,

  • activo que es cuando se muestra en una ventana
  • oculto cuando la memoria no se muestra en una ventana
  • inactivo que es la situación en la que la memoria no se muestra en ninguna ventana, pero además no contiene nada, está vacía.

Puedes iniciar Vim con varias ventanas, utilizando la opción -o. Esta opción te abrirá tantos archivos como indiques, cada uno en su correspondiente memoria y en su correspondiente ventana. Eso sí, todos en la misma pestaña… Ahora te indico lo que es una pestaña. El comando sería,

vim -o archivo1 archivo2 archivo3

De esta manera, cuando entres en Vim, encontrarás que está dividido en tres ventanas, donde cada una de las ventanas contiene uno de los archivos.

Pestañas

Perfecto, hemos pasado de memorias a ventanas, pero ¿que son las pestañas? Este concepto es exactamente el mismo que en el caso de otras aplicaciones. Pero, para mas claridad, indicarte que una pestaña es una colección de ventanas. Así una pestaña puede contenter una o mas ventanas y cada ventana contiene una memoria.

Al igual que en los casos anteriores, cuando abres Vim, por defecto, tendrás una memoria, una ventana y una pestaña. Sin embargo, como bien te puedes imaginar, esto es fácilmente modificable.

Creando memorias, ventanas y pestañas en Vim

Una vez que ya tienes claro que son las memorias, ventanas y pestañas en Vim, ha llegado el momento de crear y, por supuesto eliminar, memorias, ventanas y pestañas en Vim. Luego, te mostraré como puedes moverte entre cada uno de estos elementos, para tener de esta forma una visión global de todo.

Crear y eliminar memorias

Para crear y eliminar una memoria, puedes utilizar los siguientes comandos,

  • :new se crea una nueva memoria
  • :badd <archivo> crea una memoria para <archivo> pero sin abrirlo.

Recuerda que con :ls listarás todas las memorias que tengas abiertas en el momento, estén o no estén visibles.

Por otro lado para borrar una memoria, tienes que utilizar :bd. Indicarte que si después del comando añades un espacio, y pulsas el tabulador, irás alternando entre las distintas memorias que tienes abiertas en el momento.

Crear y eliminar ventanas

Igual que has hecho con las memorias, también puedes hacerlo con las ventanas. Primero con atajos de teclado,

  • Desde el modo normal, puedes, dividir una ventana verticalmente Ctrl+w v
  • Igualmente, también desde el modo normal, para dividir la ventana horizontalmente Ctrl+w s

Pero, si lo quieres hacer con comandos también es posible, así,

  • :sp te permite dividir la ventana actual horizontalmente. Si no indicas nada, en cada una de las ventanas te pondrá la memoria sobre la que estás trabajando. Como es la misma memoria, en ambas ventanas estarás viendo exactamente lo mismo. Si utilizas :sp <archivo> se añadirá una nueva memoria donde cargará ese archivo, y esa segunda memoria será la que verás en esta nueva ventana.
  • :vs se comporta exactamente igual que el anterior comando, pero dividirá la ventana actual verticalmente en dos.

Y ¿como cerrar una ventana? De nuevo aquí tienes dos opciones, o bien mediante una combinación de teclas Ctrl+w c o bien, recurriendo al comando :close.

Crear y eliminar pestañas

Una vez, que ya sabemos crear y eliminar tanto memorias como ventanas, nos queda el último de los objetos, las pestañas. ¿Como crear y eliminar pestañas?.

Directamente, antes de iniciar en Vim, puedes abrir varios archivos, cada uno de ellos, en su correspondiente memoria, ventana y pestañas. Para hacer esto, ejecuta la siguiente instrucción,

vim -p archivo1.txt archivo2.txt

Una vez iniciado Vim, para añadir una pestaña utiliza el comando :tabnew. De esta manera se creará una nueva pestaña, con su correspondiente ventana y memoria. Si en lugar de esto, ejecutas :tabnew archivo.txt, entonces abrirá archivo.txt en esa nueva memoria, ventana y pestaña.

Por contra, si lo que quieres es cerrar una pestaña, el comando que tienes que utilizar es :tabclose.

Moviéndonos entre memorias, ventanas y pestañas en Vim

Ahora que ya tienes claro y sabes la diferencia entre memoria, ventana y pestaña, ha llegado el momento de moverte entre diferentes memorias, ventanas y pestañas

Muévete entre memorias

Como ya has visto, para saber las memorias que tienes en danza, simplemente tienes que utilizar el comando :ls o :buffers, recuerda que he traducido buffers como memorias.

Así, para cambiar de una memoria a otra puedes tienes distintas opciones :<numero>b o ::b<numero> o incluso :b <numero>. Cualquiera de estas opciones es válida. Además, si utilizas :b, puedes utilizar el tabulador para autocompletar.

Moviéndonos entre ventanas

Para moverte entre las diferentes ventanas que tienes abiertas, tienes que utilizar Ctrl+wy a continuación utilizar o bien cualquiera de las teclas de desplazamiento de Vim hjkl o bien las flechas. Aunque, por cuestiones de no levantar los dedos del teclado, lo más práctico es utilizar las primeras.

Por otro lado, una de las características que tienen las ventanas son las dimensiones de las mismas. De esta manera, es posible redimensionar las ventanas de la siguiente forma,

  • Ctrl+w > y Ctrl+w < para aumentar o disminuir, respectivamente, el tamaño de la ventana horizontalmente.
  • Ctrl+w + y Ctrl+w - para aumentar o disminuir, respectivamente, el tamaño de la ventana verticalmente.
  • Ctrl+w = con este combinación de teclas reinicias el ancho y alto de las ventanas.
Copiar y pegar entre ventanas

Una de las ventajas de tener varias ventanas abiertas es que copiar y pegar se vuelve una operación realmente sencilla. Tan solo tienes que utilizar las combinaciones de teclas que aprendiste anteriormente.

Supongamos que quieres copiar una línea completa y pegarla en la ventana que tienes a la derecha, simplemente utiliza yy Ctrl+w l p.

Moviéndote entre pestañas

Por último, y para completar todas los objetos queda revisar como te puedes mover entre las pestañas que tengas abiertas. Así, puedes listar todas las pestañas abiertas utilizando el comando :tabs.

Con los atajos de teclado Ctrl+RePag y Ctrl+AvPag, puedes moverte a la pestaña anterior y siguiente respectivamente, tanto en el modo normal, como en el modo de insertar. Aunque en mi caso no me funciona, porque estoy utilizando terminator, y estas combinaciones de teclas están asignadas en la propia aplicación.

Sin embargo, en el modo normal puedes utilizar gt para ir a la siguiente pestaña, y gT para ir a la pestaña anterior.

Igualmente, puedes utilizar los siguientes comandos,

  • :tabm 0 o :tabfirst para ir a la primera pestaña
  • :tabm o :tablast para ir a la última pestaña
  • :tab <numero> para ir a la pestaña <numero>.
  • :tabn para ir a la siguiente pestaña
  • :tabp para ir a la pestaña anterior

Conclusión

Esto abre todo un mundo de posibilidades a la hora de trabajar con Vim. Sobre todo en el caso de tener que trabajar con dos archivos en paralelo. Por ejemplo, para el caso de modificar un documento partiendo de un documento existente. Con un par de ventanas puedes abrir ambos documentos, uno al lado de otro y copiar y pegar de forma sencilla, rápida y sobre todo productiva.


Más información,

Imagen de portada de Ján Jakub Naništa en Unsplash

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *