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
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,medical
por 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.
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.
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.
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.
¿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.