Temporada 01: iniciándose en Vim

11. Vim: formato

Publicado por

Sí, Vim es un editor de texto plano, pero incluso el texto plano puede tener formato. Piensa en un archivo de texto como una hoja de papel escrita con máquina de escribir ¿esos documentos tenían formato?, ¡claro que sí! Solo que el formato no se expresa en tipografías distintas, ni en distintos tamaños de letra.

Un ejemplo muy claro de documentos de texto plano con formato son los RFC (Request For Comments), textos en donde se describe el diseño o funcionamiento de los protocolos de comunicación sobre los que funciona Internet.

Documento del RFC #768 sobre el protocolo UDP
Documento del RFC #768 sobre el protocolo UDP

En un documento de texto se pueden modificar muchas cosas del formato, como la alineación del texto, el margen, incluso el sangrado. Todas estas cosas, en una máquina de escribir, tienen que hacerse a mano, pero como ya te habrás acostumbrado, para el caso de los archivos de texto, Vim está dispuesto a hacer el trabajo tedioso por ti.

Definiendo márgenes

A diferencia de un editor de palabra como Writer de LibreOffice, en un editor de texto plano, no tenemos un punto de referencia predefinido para determinar dónde debe terminar un renglón. Si has utilizado editores de texto más simples, como nano o notepad tal vez hayas escrito líneas de texto muy largas. En Vim puedes utilizar la variable numérica textwidth (o su abreviatura tw) para indicar la longitud máxima que tendrán los renglones en el documento. Si una línea de texto excede el límite establecido por tw, esta será dividida por un salto de línea. Si el valor de esta opción es cero (el valor por defecto) inhabilita el margen y te permite escribir líneas tan largas como quieras.

:set textwidth=80 "El margen es fijado a 80 columnas
:set tw=0 "El margen es inhabilitado
:set textwidth "Consulta el valor actual de 'textwidth'
:help 'textwidth' "Obtiene más información sobre esta variable

Alineando texto

Vim también permite alinear texto. Una vez que ya definiste el ancho del texto en tu documento, ya tienes un marco de referencia contra el cual alinear texto a la izquierda, a la derecha e incluso centrarlo y justificarlo. Las primeras tres opciones son bastante simples, solo tienes que utilizar el comando correspondiente:

Comando Sirve para…
:left alinear texto a la izquierda.
:right alinear texto a la derecha.
:center centrar texto.

Para justificar el texto no hay un comando propio del editor, pero gracias a un alma noble de nombre Preben “Peppe” Guldberg, existe un script llamado justify.vim que, muchas veces es incluido con el editor y proporciona, entre otras cosas, un comando llamado :Justify (nota como el nombre empieza con mayúscula), que justamente cumple con la función de justificar texto. Para habilitar este script ejecuta :runtime macros/justify.ivm. Si tu instalación de Vim no incluye este script pero tienes ganas de utilizarlo, puedes encontrarlo fácilmente en Internet. Si utilizas Linux puedes descargarlo así:

$ mkdir -p $HOME/.vim/plugin # Solo si el directorio no existe
$ wget http://ftp.stust.edu.tw/vim/runtime/macros/justify.vim \
-O $HOME/.vim/plugin/justify.vim

Este comando copiará justify.vim en tu directorio de plugins, de modo que ya no necesitarás cargarlo con el comando :runtime, si prefieres instalarlo como si hubiera sido distribuido con el editor, puedes copiarlo directamente al directorio [/raw]$VIMRUNTIME/macros[/raw].

Sangrado

El editor cuenta con muchas opciones de configuración, las cuales incluyen variables para modificar el sangrado del texto. Este es especialmente importante al momento de escribir código fuente, por lo que, si eres un programador, configurar adecuadamente el sangrado en el editor te puede ahorrar mucho tiempo y te ayudará a mantener tu estilo de codificación o el de tu organización.

Opción Tipo Propósito
'tabstop' Entero Cantidad de espacios que mide un tabulador.
'expandtb' Booleano Reemplazar los tabuladores por espacios en blanco.
'shiftwith' Entero Tamaño del sangrado en columnas.
'autoindent' Booleano Activa el sangrado automático.
'smartinent' Booleano Trata de aplicar el mejor sangrado automáticamente.
'cindent' Booleano Utiliza sangrado estricto para programas en C.

Por defecto, el valor de 'tabstop' es ocho, y el de 'shiftwidth' es cuatro. Si habilitas alguna de las opciones de sangrado automático y aún así el texto no queda correctamente distribuido, puedes ajustar el sangrado por medio de los comandos >> y << para incrementar y decrementar respectivamente el sangrado de una o varias líneas. El número de columnas que medirá el sangrado está definido por el valor de la opción 'shiftwidth' cuyo nombre significa, literalmente “ancho del deslizamiento”.

Formato automático

Existe una variable llamada “Opciones de formato” ('formatoptions') de tipo texto que contiene una secuencia de letras que indican cómo hará Vim para aplicar formato de manera automática. Las letras que puede contener esta variable son varias y muchas de ellas tienen más sentido cuando se trata de dar formato a los comentarios dentro de un archivo de código fuente, por lo que en esta ocasión solo listaré algunas que te ayudarán a definir el formato de documentos de texto:

Letra Significado
t Inserta saltos de línea automáticamente al alcanzar el margen.
w Establece que los espacios en blanco al final de la línea indican que el párrafo continúa en el siguiente renglón. Una línea de texto sin espacios al final indica que el párrafo ha terminado.
a Habilita el formato automático para párrafos. Cada vez que se inserte o elimine texto del párrafo, el formato de este será actualizado.
2 Al formatear texto, utiliza el sangrado de la segunda línea del párrafo en lugar de la primera.

Si lo que deseas es habilitar todas las opciones de formato automático que acabamos de describir, puedes asignarlas a la variable de la siguiente forma:

:set formatoptions=twa2

Si quisieras apagar alguna de las opciones:

:set formatoptions-=2

En este caso, aunque estás “restando” el número dos a la opción, Vim entiende que ese símbolo no es un número, dado el tipo de dato de la variable formatoptions. Lo mismo sucede si vuelves a agregar el símbolo “2”:

:set formatoptions+=2

Espero que esta nota te haya ayudado a conocer las opciones que Vim te ofrece para dar formato a tus documentos, pues son muy útiles y te ahorran mucho tiempo si utilizas este editor como herramienta principal de escritura. Si quieres obtener más información sobre las opciones de formato automático, o consultar la lista completa de letras que puede contener esta opción, puedes consultar su sección en la documentación ejecutando :help 'formatoptions'. Para más información sobre cómo editar texto con formato, puedes consultar el capítulo correspondiente en el manual de Vim ejecutando :help usr_25. Hasta pronto.

Deja una respuesta

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