Person typing at laptop computer

Cómo convertir Vim en un procesador de textos

Lo crea o no, uso Vim como mi procesador de texto diario. Me gusta su diseño simple y su diseño modal que favorece los comandos del teclado sobre los clics del mouse.

Aunque probablemente conozca a Vim como un editor de texto más adecuado para la codificación que para la prosa, con algunos ajustes, usted también puede escribir documentos como si estuviera en Word o LibreOffice mientras permanece dentro de los cómodos límites de una terminal.

Empezando

Si aún no se ha familiarizado con los conceptos básicos de Vim, consulte este artículo, que es el primero de una serie de cuatro. Asegúrese de aprender cómo abrir un archivo de texto, ingresar y salir del programa, y ​​moverse por la pantalla con el teclado antes de continuar con esta pieza.

Instalación

Su distribución de Linux probablemente viene con Vim en su repositorio de paquetes, por lo que puede instalarlo fácilmente con su Administrador de software o administrador de paquetes. Cuando edite el archivo de configuración de Vim más tarde, puede hacerlo como un usuario normal.

Arco Linux:

Fedora:

Ubuntu:

Todos los demás pueden tomar Vim de su repositorio de Github:

git clone https://github.com/vim/vim.git
cd ./vim/src/
make
sudo make install

El archivo de configuración de Vim

Una instalación de Vim puede crear un archivo .vimrc en su directorio de inicio. Si no es así, crea uno:

Puedes abrirlo con Vim mismo:

Nuestro procesador de textos

Ahora probablemente esté viendo un archivo vacío. Cambiemos eso.

Podemos crear una función llamada «Procesador de textos» que puede llamar en cualquier momento. Se verá así:

func! WordProcessor()
  " movement changes
  map j gj
  map k gk
  " formatting text
  setlocal formatoptions=1
  setlocal noexpandtab
  setlocal wrap
  setlocal linebreak
  " spelling and thesaurus
  setlocal spell spelllang=en_us
  set thesaurus+=/home/test/.vim/thesaurus/mthesaur.txt
  " complete+=s makes autocompletion search the thesaurus
  set complete+=s
endfu
com! WP call WordProcessor()

Ahora que ve la función como un todo, podemos desglosar sus partes. Siga mirando las secciones de nuestra función comentadas con una comilla simple, las líneas individuales en gris.

1. Cambios de movimiento con map j gj y map k gk

Lo que ves aquí es un cambio en cómo funciona el movimiento del cursor dentro de Vim. Si lee los artículos anteriores de Vim mencionados al principio de este artículo, sabrá que j mueve el cursor hacia abajo y k mueve el cursor hacia arriba. De manera similar, gj y gk lo mueven hacia abajo y hacia arriba, pero mueven el cursor por línea en la pantalla en lugar de por línea en el archivo.

Nuestro mapeo de j/k a gj/gk le da a su cursor la capacidad de moverse hacia arriba y hacia abajo a través de líneas envueltas en su pantalla. Esto ayuda cuando está escribiendo párrafos largos y necesita mover el cursor fácilmente al medio de esos párrafos.

2. Dar formato al texto con los comandos «setlocal»

Primera vista setlocal formatoptions=1. «Formatoptions» le permite elegir entre una serie de modos de formato de texto. En el caso de la opción «1», Vim se abstendrá de dividir líneas después de una palabra de una letra. Intentará, cuando sea posible, romper líneas antes de la palabra de una letra.

Próximo, setlocal noexpandtab le permite evitar que Vim cambie las pestañas por espacios. Como ejemplo, la configuración de «expandtab» le indicará a Vim que cambie la presión de la tecla Tab en una cantidad de espacios que se ajusten a la misma longitud. “Noexpandtab” hace lo contrario; conserva la pulsación de la pestaña como un solo carácter.

setlocal wrap le dice a Vim que ajuste su texto cuando llegue al final de su pantalla. Este es el comportamiento que esperaría de un procesador de textos.

Finalmente, setlocal linebreak hace que Vim rompa tus líneas en lugares sensibles. Evita que sus líneas se ajusten al último carácter que cabe en la pantalla. Esta es la razón por la que, en parte, verá que las líneas de texto llegan a varios puntos de la pantalla antes de volver al principio. Mira cómo se ve con una copia sin terminar de este artículo en la captura de pantalla a continuación

Ejemplo de salto de línea de Vim

3. Ortografía y diccionario de sinónimos fuera de línea

Vim viene con una capacidad de revisión ortográfica incorporada. Puede hacer que su función «Procesador de textos» use esa capacidad usando el comando setlocal spell spelllang=en_us. Puede definir varios idiomas aquí en una lista separada por comas.

Encuentre más archivos de idioma en este sitio FTP de Vim. Coloque sus archivos seleccionados (tanto archivos .spl como .sug para cada idioma) en «$HOME/.vim/spell/». Cambia la línea de tu función a set spelllang=en_us,nl,medicalpor ejemplo, para buscar palabras en inglés, holandés y médicas.

Las palabras mal escritas aparecerán subrayadas y en negrita en el texto.

corrector ortográfico vim

Puede buscar reemplazos ingresando :z= en modo Normal. (Use la tecla Escape para acceder al modo Normal). Ese comando producirá una pantalla como la siguiente imagen.

Vim sugerencias de palabras mal escritas

Puede usar la función de diccionario de sinónimos de Vim diciéndole el directorio de diccionario de sinónimos elegido con set thesaurus+=/home/<user>/.vim/thesaurus/mthesaur.txt o similar. Puede encontrar el archivo «mthesaur.txt» en el Proyecto Gutenberg. Coloque su archivo de texto descargado en el directorio que defina con ese comando.

Busque palabras similares a su palabra resaltada ingresando al modo Insertar (presione i cuando esté en el modo Normal), y escribiendo Ctrl + x y luego Ctrl + t. Le mostrará una lista como la siguiente imagen por la que puede desplazarse para encontrar una nueva palabra.

Sugerencias de diccionario de sinónimos de Vim

A veces las sugerencias no son las mejores.

4. Autocompletar palabras con la opción “completar”

Mirar set complete+=s para nuestra consideración final. Esta opción le dice a Vim que busque en su diccionario de sinónimos una palabra que desee autocompletar.

Normalmente, puede autocompletar palabras haciendo que Vim mire las palabras anteriores que ha escrito, como «mal escrito» y «error» en la siguiente captura de pantalla. Simplemente ingrese al modo Insertar y escriba Ctrl + n o Ctrl + p para buscar una palabra que, por ejemplo, coincida con el «mis» a medio escribir.

Sugerencias de autocompletado de Vim

¿Ves cómo las dos primeras selecciones no son del diccionario de sinónimos? Esas dos líneas son las únicas opciones que vería aquí si nuestra función no hubiera usado «complete+=s». Puede omitir o comentar esa línea para autocompletar más rápido.

Iniciar su procesador de textos

La línea final de su .vimrc que hace que funcione la función WordProcessor es com! WP call WordProcessor(). Te permite escribir :WP en el modo Normal para configurar las capacidades de procesamiento de texto de Vim.

Puede editar el «WP» en esta línea para leer lo que quiera, solo asegúrese de que el texto sea contiguo. Cualquiera que sea el texto que elija, cambiará el comando a :<your-text>.

Conclusión

La funcionalidad que he discutido aquí solo dura una sola sesión de Vim. Por lo tanto, cuando cierre y vuelva a abrir Vim, la configuración predeterminada se mantendrá nuevamente. Esto sucederá incluso si abre el mismo archivo por segunda vez.

Puede configurar estas opciones fuera de la función para que funcionen todo el tiempo, pero es posible que no hagan justicia a muchas de las tareas de programación para las que se creó Vim. No es difícil escribir un par de caracteres de todos modos. Simplemente disfrute de su nueva configuración y del hecho de que ha convertido su terminal en un potente editor de párrafos.

Deja un comentario

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

Experto Geek - Tu Guía en Tendencias Tecnológicas