Pliegues 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.

Esto de los pliegues en Vim, es una de las características que no he utilizando suficientemente, aunque realmente tampoco es algo que suela utilizar en otros editores de texto. Me estoy refiriendo colapsar o expandir, es decir, agrupar varias líneas en una sola. Esto procedimiento es muy habitual en la edición de código. Pero no solo ahí, también para el caso de que estés escribiendo un artículo con diferentes apartados y subapartados, y quieras plegar algunos de ellos para moverte con mas fluidez y rapidez por todo tu documento.

Como decía, no lo utilizo en Vim, pero es que tampoco lo utilizo en otros editores, como puede ser Visual Studio Code. En este sentido, prefiero desmenuzar lo que esté haciendo en varios archivos, antes que tener que recurrir a esto de plegar, colapsar y expandir. Prefiero verlo todo de un solo vistazo.

Sin embargo, entiendo que pueda ser de interés a mas de uno, empezando por mi, y por esto, he querido dedicarle un capítulo de este tutorial sobre Vim.

En mi caso particular, lo he estudiado, y lo dejaré en el tintero, al menos de momento, porque como digo, es algo que actualmente no estoy utilizando y no quiero distraerme del foco principal. Sin embargo, me parece una técnica interesante que es necesario conocer, y tenerla en ese fondo de armario, para tirar de él cuando sea necesario.

Pliegues

Pliegues en Vim

Por aclarar de nuevo conceptos, repetir, que esto de los pliegues en Vim, no es mas que agrupar varias líneas en una sola es lo que se conoce en inglés como folding y que yo he traducido por plegar, y a cada uno de estos agrupamientos, los he llamado pliegues.

Métodos de plegado

Existen diferentes métodos de hacer pliegues en Vim

  • manual el plegado o recogido del texto se hace de forma manual,
  • sangría las líneas se agrupan por el mismo nivel de sangría,
  • sintaxis en este caso el plegado se realiza en base a la sintaxis,
  • marcas se pueden establecer marcas especiales que indiquen donde empieza y termina un bloque,
  • expresiones los bloques que se pueden colapsar quedan definidos por expresiones regulares,
  • diferencias utiliza el plegado de texto, para ocultar el texto que no se ha modificado cuando estás previsualizando diferencias.

En este tutorial sobre folding o pliegues en Vim, no voy a tratar todas las opciones posibles que tienes, simplemente las mas habituales. El resto, que sepas que existen.

El plegado manual

El primer paso antes de probar esto del plegado manual es establecerlo, pero ten en cuenta, que si tienes instalados otros complementos, estos pueden modificar el comportamiento por defecto. En mi caso, por ejemplo, tenía un complemento para markdown y no conseguía que esto del plegado terminara de funcionar. En cada momento se comportaba de una manera, finalmente tuve que deshabilitarlo para conseguir que funcionar correctamente.

Como te digo, primero, establece el modo manual con set foldmethod=manual. Ahora ya puedes plegar texto como si no hubiera un mañana. Por ejemplo, si quieres plegar las 3 siguientes líneas, desde el modo normal utiliza la siguiente combinación de teclas zf3j.

Si, lo adivinaste, en Vim, para plegar o recoger texto se utiliza siempre la z. Así, para plegar utilizas zf<movimiento>. Esto te va a crear un nuevo pliege que vas a poder accionar cuando tu necesites.

De la misma manera, en el caso de que quieras plegar dos párrafos, simplemente tienes que utilizar zf2{ para el caso que quieras que sean los dos siguientes, mientras que utilizarás zf2}, en el caso de que quieras que sean los dos anteriores.

Otra opción es utilizar zfa<elemento>. Esto lo puedes utilizar por ejemplo cuando estás escribiendo código, donde las funciones y otros elementos están definidos por {}. De esta manera, para colapsar una función, tendrás que utilizar zfa{. En este caso, para plegar párrafos, tienes que utilizar zfap.

Para facilitarte todo esto del plegado, a continuación encontrarás los comandos mas utilizados en el modo normal,

  • zo abre el pliegue sobre el que te encuentras. También lo puedes hacer con la barra espaciadora.
  • zc hace la operación inversa de la anterior, es decir, cierra el pliegue sobre el que te encuentres…, en caso de que exista claro.
  • za abre o cierra el pliegue el que te encuentres. Es decir, si el pliegue está abierto lo cierra, y en el caso de que esté cerrado lo abre.
  • zd en caso de encontrarte ante un pliegue manual, con esta combinación de teclas, borrará el pliegue. De esta manera ya no podrás activarlo de nuevo. Esto no borra el texto contenido en el pliegue, solo borra el pliegue en si.
  • zj desplaza el cursor hasta el siguiente pliegue.
  • zk mueve el cursor hasta el pliegue anterior.
  • zR abre todos los pliegues en la memoria actual, recuerda el capítulo anterior sobre memorias, ventanas y pestañas
  • zM cierra todos los pliegues existentes.
  • zE borra todos los pliegues.

El plegado por sangría

El plegado por sangría funciona de forma automática. No te tienes que preocupar de crear y borrar los pliegues, sino que esto se crean para los distintos niveles de sangrado.

Si trabajas con Python, esto es especialmente interesante. Con otros lenguajes de programación, tendrás que ocuparte y preocuparte de que el sangrado sea el correcto.

Para activar este método de plegado tienes que ejecutar la siguiente instrucción,

set foldmethod=indent

Plegado por sintaxis

Otra opción disponible para el plegado es por sintaxis. En este caso el plegado viene definido por el lenguaje de programación que estés utilizando. Puedes establecer para que lenguajes quieres que se aplique el plegado y para cuales no. De esta manera es mucho mas sencillo de controlar.

Igual que en otras opciones, para activar este plegado tienes que utilizar el comando,

set foldmethod=syntax

Además tienes que definir para que sintaxis quieres aplicar el plegado y algunas características en el caso de que las necesites.

Plegado persistente

Por defecto los pliegues no se mantienen entre sesiones. Una vez que has cerrado una sesión, cada uno de los pliegues que hayas podido definir desaparece. Sin embargo, es posible hacer que los pliegues sean persistentes entre sesiones.

Esto, simplemente lo comento, para que lo tengas en mente, por si en alguna ocasión te resulta necesario. Necesitarás buscar documentación al respecto para poder llevarlo a la práctica, y es posible, o no, que haya amplido la documentación de este tutorial con esta práctica.


Imagen de portada de JJ Ying en Unsplash

Deja un comentario

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