Introducción a Vim

Introducción

Este proyecto aspira a servir tanto de introducción como de base a VIM a los demás compañeros de clase. El pequeño pero potente editor de texto multiplataforma Vim mantiene en la actualidad una base de usuarios importante, siendo la última versión 7.4 lanzada el 28 de julio de 2013, a pesar de su largo ciclo de vida (su primera versión se remonta al año 1991).

Actualmente su uso está muy extendido entre desarrolladores web, especialmente con Django y Ruby on Rails, que no necesitan todas las características y sobrecarga de un pesado IDE y a la vez puedan disfrutar de las numerosas ventajas de Vim. De hecho Toughtbot, una importante compañía de desarrollo web, incluye en su programa educativo un curso de vim y que puede ser visitado en https://learn.thoughtbot.com/vim.

Características

Vim utiliza un paradigma multi-modal, es decir, soporta diferentes modos: inserción de texto, normal (para revisar texto y aplicar comandos), modos visuales para seleccionar más fácilmente trozos de texto y otros. Además cada operación en Vim tiene su correspondiente atajo o combinación de teclas, evitando el uso del ratón por su lentitud. La mayoría de editores, en cambio, sólo disponen de un modo de inserción donde se supone que el usuario sólo introduce texto.

Así, Vim nos ofrece una experiencia de edición de texto altamente eficiente, veloz y libre de distracciones. Su principal ventaja es la misma que la de la mecanografía. Su dominio nos permite editar texto sin desviar nuestra atención a molestos botones que haya que clickar, menús y otros componentes de la interfaz del editor, sino que al tener memorizados los comandos la edición se convierte en un acto reflejo y permite al desarrollador concentrarse en el texto, de la misma forma que el desarrollador que conoce mecanografía no necesita perder tiempo en buscar las teclas en el teclado y se centra en el texto a escribir. Por otro lado, el principal inconveniente de Vim es la pronunciada curva de aprendizaje que supone memorizar y aprender los comandos básicos para la inserción.

Extensiones

Vim es en su esencia un editor de texto, por lo que carece de muchas características propias de un IDE como el autocompletado sensible al contexto, explorador de símbolos, refactorización y otros. Afortunadamente es extensible mediante plugins, de forma que estas y otras características pueden ser añadidas por el desarrollador. Esto depende del soporte y comunidad de usuarios de Vim que haya para un lenguaje concreto. Por ejemplo, los lenguajes de script Python y Ruby, al ser muy recientes y populares cuentan con la mayoría de características de sus contrapartes en IDEs.

Vim Plugins

En la imagen (hacer click en ella para verla mejor) tenemos el editor vim con un fichero Python y varios plugins que ofrecen características de un IDE como explorador de símbolos (panel derecho), autocompletado y muestra de documentación del método a insertar (classmethod) así como parseo y detección de errores (error en la línea anterior a la de inserción, número 164, por longitud de línea excesiva).

Finalmente con Vim, tenemos un editor de texto muy rápido  una vez que se domina y sobre el que podemos construir nuestro propio IDE, mediante extensiones, que se adapte a nuestras necesidades.