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.
Hasta el momento has podido ver con mas o menos profundidad dos modos. El primero el modo insertar y el segundo el modo normal. Recordarte que el modo normal es el que te encuentras nada mas entrar en Vim, mientras que el modo insertar, es donde básicamente escribes o modificas el texto. Aunque, mas bien, conforme lo que has ido viendo, es mas fácil cambiar el texto en el modo normal que en el modo insertar. También has visto que hay otros modos mas, como puede ser el modo línea de comandos, y es precisamente a este modo al que le voy a dedicar este capítulo del tutorial. De esta forma, en este capítulo te adentrarás en la línea de comandos en Vim.
Antes de introducirte a la línea de comandos en Vim, indicarte que todavía te quedan algunos modos adicionales por ver. Pero, dado que este lo has tocado ya en varias ocasiones, y que es el modo desde el que guardar tus archivos o salir de Vim, vamos a verlo con profundidad.
La línea de comandos en Vim
Entrar y salir del modo de línea de comandos
Lo primero y principal aprender a entrar y salir de la línea de comandos. Desde el modo normal es realmente sencillo, tan solo tienes que pulsar :
. Si te encuentras en otro modo, como por ejemplo en el modo insertar, pasas al modo normal, pulsando la tecla escape
y a continuación la tecla :
, dado que estarás en el modo normal.
Como te puedes imaginar, Vim tiene una gran cantidad de comandos para ejecutar desde su línea de comandos. Así, a continuación encontrarás agrupados por funcionalidad aquellos que son mas interesantes y los que mas me han llamado la atención.
Moverte en la línea de comandos de Vim
Antes de conocer todas los comandos que puedes ejecutar desde el modo de línea de comandos, es necesario que conozcas como moverte en la línea de comandos. Por supuesto, y como no podía ser de otra forma, en el modo línea de comandos en Vim también tienes atajos de teclado. Atajos de teclado que te van a facilitar trabajar con la línea de comandos. Así, a continuación te indico los mas utilizados, o bien, los que mas me han llamado la atención,
Ctrl+➡️
te mueves una palabra a la derechaCtrl+⬅️
te mueves una palabra a la izquierdaCtrl+b
te desplazas al principio de la línea de comandosCtrl+e
te desplazas al final de la línea de comandosCtrl+h
borra el carácter que precede al cursorCtrl+w
borra la palabra que precede al cursorCtrl+u
borra todos los caracteres desde la posición del cursor al inicio de la línea de comandos.⬆️
busca los comandos ejecutados con anterioridad que coincidan con el texto actual. Si no hay nada pasará justo al anterior.⬇️
igual que el anterior pero para los siguientes.Ctrl+d
te muestra el completado de la línea de comandos. Simplemente, escribe algo en la línea de comandos y pulsa el atajo de teclado.
Abrir, cerrar y guardar archivos
Como te decía en la introducción, algunos de los comandos del modo línea de comandos, ya los has visto con anterioridad. Me refiero en particular a los que vas a ver en este primer grupo de comandos. Así, a continuación encontrarás todos los relativos al tratamiento de archivos, abrir, cerrar o guardar archivos.
:w
guarda el archivo en curso.:wq
guarda el archivo en curso y sale de Vim siempre y cuando no queden mas archivos abiertos.:w nombre-del-archivo
guarda una copia del archivo en curso pero continúa editando el archivo original:sav nombre-del-archivo
guarda una copia del archivo en cuso y continua editando el archivonombre-del-archivo
.:q!
cierra un archivo sin guardarlo.:e nombre-del-archivo
abre el archivonombre-del-archivo
en el buffer en curso. Ya veremos mas adelante esto del buffer.:x
escribe cualquier cambio al archivo en curso y lo cierra.:r nombre-del-archivo
lee el archivonombre-del-archivo
y lo inserta en el archivo en curso.
Gestionar la historia
Al igual que haces en el shell
también es posible acceder al historial de la lista de comandos de Vim. Es decir, puedes ver todo lo que has escrito en la línea de comandos. Pero tienes la gran ventaja de que puedes verlo clasificado, es decir, no solo todos los comandos que has escrito, sino también las búsquedas, etc.
Así, para ver la historia simplemente tienes que escribir :his
ó :history
. Con esto verás todo lo que has ejecutado en la línea de comandos. Pero puedes hacerlo de forma selectiva, como he comentado anteriormente. Así,
:history :
listará únicamente los comandos.:history /
en este caso listará las búsquedas:history all
te mostrará todo lo anterior
Existen mas opciones, pero esto lo dejo para que lo consultes cuando lo necesites. Por otro lado, indicarte que puedes listar algunas de las opciones, como puede ser,
:history / 1,2
que te listará la primera y la segunda de las búsquedas que hayas realizado:history / -1
te mostrará la última de las búsquedas que hiciste
Indicarte que para salir del listado de la historia reciente, tan solo tienes que utilizar, como de costumbre, :q
.
Autocompletado
Como suele suceder, o por lo menos, como esperas, si cuando estás escribiendo un comando en la línea de comandos, pulsas la tecla tabulador
, se completará o al menos, se intentará completar la palabra que estés introduciendo. Pero, tienes algunos atajos de teclado que seguro te serán de gran utilidad,
Ctrl+D
te muestra un listado de palabras que coinciden con lo que hayas escrito en la línea de comandos. Por ejemplo, si escribes:hi
y utilizas el atajo de teclado te mostraráhide highlight history
.
Indicarte que el autocompletado no solo funciona en la línea de comandos, también lo puedes utilizar cuando estés escribiendo un texto. Simplemente cuando estés escribiendo una palabra, pulsa Ctrl+N
, y o bien, te aparecerá un desplegable para que selecciones la opción que necesites o bien, simplemente completará la palabra que tienes a medias.
Gestionando pestañas
Una de las características de Vim son las pestañas. Si, Vim te permite trabajar con varios archivos de forma simultánea, situando cada un o de ellos en una pestaña. Pero, ¿como gestionar las pestañas en Vim?. Vim, tiene una serie de comandos que te facilitará la gestión de pestañas
:tabnew
lo utilizarás para crear una nueva pestaña. Puedes realizar algunas modificaciones sobre el comando de abrir pestaña. Así, puedes utilizar:+trabnew
para abrir la pestaña después de la pestaña en la que te encuentra. De igual forma, tienes otras opciones, que seguro sabes deducir en base a lo que has visto hasta el momento. Así, tienes:-tabnew
,:0tabnew
,:$tabnew
.:tabfirst
te mueve a la primera pestaña:tablast
te lleva a la última pestaña:tabm <n>
desplaza la pestaña actual a la posición<n>
:tabclose
te permite cerrar una pestaña. Igual que en el caso de abrir pestaña, también puedes anteponer modificadores para cerrar.:tabonly
cierra todas las pestañas excepto la pestaña en la que te encuentras. Al igual que en el caso anterior, también admite modificadores.:tabe <nombre-del-archivo>
abre el archivonombre-del-archivo
en una nueva pestaña.
Gestionando buffers
¿Que es un buffer?. Un buffer en Vim, no es mas que un espacio de Vim, donde se guarda el texto que se ha leído de un archivo, o también puedes ser un espacio vacío.
Puedes ver todos los buffers que tienes abiertos utilizando :ls
. Si tienes varios buffer abiertos, verás que delante de cada uno de ellos aparece un número, que es el número asignado a ese buffer. Si quieres crear un buffer vacío, tan solo tienes que utilizar :new
. Para moverte entre buffers, tienes que utilizar,
:bnext
ó:bn
para pasar al siguiente buffer:bprevious
ó:bp
para pasar al buffer anterior:b <numero>
te mostrará el buffer con el número indicado:bd
cierra ese buffer o también puedes utilizar:bd <numero>
para cerrar el buffer con el número indicado. Este comando fallará si no has guardado el buffer. Para cerrar con independencia del estado del buffer utiliza:bd!
.
Gestionando ventanas
Además de gestionar pestañas y buffers, Vim también te permite gestionar ventanas. Es decir, puedes tener varios archivos abiertos, cada uno en su correspondiente ventana.
Así algunos de los comandos para gestionar ventanas son los siguientes,
:split
divide la ventana actual en dos de forma horizontal. Si lo acompañas de un nombre de archivo, cargará ese archivo directamente en esa ventana:vsplit
lo mismo que el anterior pero esta vez de forma vertical:hide
cierra la ventana en la que te encuentres:only
ocultará el resto de ventanas:b <numero>
muestra el buffer número<numero>
en la ventana en la que te encuentre
Para desplazarte entre ventanas, tienes que utilizar los siguientes atajos de teclado,
Ctrl+w Ctrl+w
te lleva a la siguiente ventanCtrl+w_
maximiza la ventana en la que te encuentrasCtrl+w=
iguala todas las ventanasCtrl+⬆️
te lleva a la ventana superior, y lo mismo con el resto de flechas, pero en su dirección y sentido concreto. Si en lugar de flechas, utilizas las teclashjkl
, tendrás exactamente el msmo comportamiento.
Ejecutar comandos de shell
Si todo esto te parece poco, indicarte, que también tienes la posibilidad de ejecutar comandos de shell directamente en Vim. Es tan sencillo como ejecutar :!<comando
. Así, por ejemplo, si quieres listar los archivos que se encuentran en el directorio, tan solo tienes que hacer :!ls
El vídeo
Todo lo que te he contado, pero ahora en vídeo,
Conclusión
Con esto ya has visto las posibilidades que te ofrece la línea de comandos de Vim, son increíbles, pudiendo no solo gestionar archivos, sino también todo lo relativo a pestañas, buffers, ventanas, etc.
Más información,
Imagen de portada de Shahadat Rahman en Unsplash