vim logo

Vim es un maravilloso editor de texto. Posé unas cualidades que lo convierten en una navaja suiza. Tanto en servidor como en local. Su particular forma de moverte lo hace uno de los editores más rápidos y precisos. Conlleva un tiempo de aprendizaje, tal vez años, pero después no puedes vivir sin sus manera de ser. Casi cualquier IDE o editor de texto que se precie tiene un plugin para emularlo. Vim es mucho más que un editor, sino un triunfo del software libre. Una demostración de como poder programar sin tocar el ratón. De como una comunidad puede organizarse para realizar un software de calidad.

Pero ser un magnífico editor de texto no lo convierte en una buena herramienta para programar. Hay que tener en cuenta que cuando desarrollas necesitas un conjunto de herramientas que trabajen en armonía. En otras palabras: un IDE. No un editor de texto supervitaminado. No un monstruo de plugins externos y dependientes de sus desarrolladores.

Después de trabajar durante casi 2 años con Sublime Text, 2 años con Vim, 1 año con emacs, y 5 meses con PyCharm; puede decir con seguridad de que Vim esta sobreexplotado. Su función es sencilla: editar textos planos por terminal. Pero en cambios se le ha sacado de su hábitat natural con GUIs. Se le ha añadido funciones antinaturales con plugins. Todo ello para transformarlo, porque recién instalado no puede hacer mucho. No esta preparado para ser una herramienta sólida a la hora de programar. Y por ello doy mis 7 razones por lo que creo que es mala idea usarlo para programar. Al menos si quieres ser productivo.

1. No puedes debuggear.

Tan básico y tan doloroso. A no ser que utilices software externo, no hay manera. ¿Es necesario? ¿Hasta que punto? No te hace falta, pero te vuelve muy productivo. Además, que llenar todo tu código de print o de echo no es elegante.

2. No tiene árbol de directorios.

Necesitamos gestionar nuestros archivos de alguna manera: crear, renombrar, eliminar, ver archivos multimedia (como imágenes)… Podemos ejecutar comando para imitarlo, pero no es una forma ni sencilla y cómoda. También podemos realizar las mismas tareas con el explorador del sistema operativo. Pero lo ideal que esté dentro de editor.

3. Necesitas instalar decenas de plugins.

Empezamos con el árbol de directorios del punto anterior (Nerd tree). ¿Git? Fugitive. Movernos rápidos entre archivos: ctrlp. Y mucho mejor si vemos en la barra inferior en que modo estamos (vim-airline). Habrá que comentar el código (Nerd commenter)… y así hasta que necesitemos scroll en nuestro archivo de configuración. Y no precisamente corto. Prácticamente tienes que construir a tu gusto. Lo que en otros IDEs ya te viene por defecto. Las IDEs dan por hecho que los necesitarás, y te las integran. Ahorrando tiempo. En Vim vamos acumulando plugins hasta lleguemos a estar satisfecho. Y lo peligroso de todo es que si el desarrollador deja de mantener el proyecto, te quedas sin una funcionalidad.

4. Sin integración con bases de datos.

Por supuesto no podemos interactuar con una base de datos. Ni ver las tablas, ni hacer consultas, ni ver la estructura… Estamos ciegos. ¿Plugin?

5. Sin terminal.

Es irónico, trabajamos en un terminal pero no tenemos un terminal. Debemos utilizar tmux o similares para dividir la ventana. Es cierto que podemos ejecutar comandos, pero no podemos tener un intérprete.

6. Tareas sencillas se vuelves complicadas.

Existen ciertas funcionalidades que en cualquier otro sitio solo tenemos que apretar un botón. Aquí se vuelves poco transparentes. Un ejemplo: buscar y remplazar. Si quiero sustituir la palabra gato por perro en todo el documento, tendré que ejecutar :%s/gato/perro/g. Es un ejemplo ideal, no tengamos que escapar ningún símbolo. Para solo esta sencilla acción necesitamos saber regex. No queda otra, no hay botones. Es una de las desventajas de no tener botones.

7. Acabas gastando tiempo en investigación.

Nunca dejas de modificar y ampliar tu configuración (vimrc). Acabarás en las últimas páginas de los foros, desencriptando la documentación oficial, leyendo blogs pertenecientes a maestros de la pantalla negra, y creando tus propios plugins hasta conseguir que funcione todo como quieres. Donde en cualquier otro IDE ya esta preparado. Ahorrando un tiempo que podrías usar para por ejemplo… en aprender otro lenguaje de programación que necesites.

Conclusión

En mi trabajo diario uso una IDE, PyCharm. Y siempre tengo activo el plugin de emulación Vim. Me muevo de forma precisa, sin apenas tocar el ratón salvo cuando uso el navegador web. Y me siento cómodo en el punto intermedio. Es una sensación agradable. De comodidad. No necesito plugins, ni recordar largos comandos. Todo a golpe de vista. Pero me alegro de pasar por Vim. Ahora tengo las herramientas que necesito gratis. Sin configuraciones en un archivo plano y sin apuntarme los atajos. Soy productivo, soy rápido y amo a Vim. Pero he madurado y se que no ha nacido para programar. Vim no es ni será un IDE. Aunque con Neovim nunca se sabe.

vim