VIM: liberada la versión 8.0 del súper editor de terminal!

Publicado por Diego Córdoba en

Después de mucho tiempo, el editor vim ha tenido un gran upgrade y se ha actualizado a la versión 8.0!

Esta versión viene acompañada de varias mejoras menores, corrección de errores, y una serie de interesantes mejoras que se detallan a continuación.2000px-icon-vim-svg

Soporte para operaciones E/S asincrónicas

Vim puede ahora intercambiar mensajes con otros procesos en segundo plano. Esto hace posible a las aplicaciones servidoras resolver problemas y enviar los datos de vuelta a Vim.

Esto lo logra esta versión utilizando JSON para manejo de canales, de modo que es mucho más fácil la escritura de plugins complejos en cualquier lenguaje de programación, y hacerlos interactuar con Vim como servidores.

Jobs

Vim puede ahora iniciar jobs, o tareas, en el sistema, comunicarse con ellas, y detenerlas. Esto es muy útil para correr procesos para autocompletado, control de sintaxis, etc.

Nuevamente, los canales JSON son utilizados para comunicarse con los jobs, y un job, a su vez, puede leer y escribir información en buffers y archivos.

Temporizadores

Permiten realizar tareas asincrónicas temporizadas mediante el uso de timers. Por ejemplo, podríamos escribir una función, y luego llamarla cada 10 segundos en forma asincrónica, utilizando una sintaxis similar a esta:

let tiempo = timer_start(10000, 'Funcion')

Además, Vim permite llamar funciones temporizadas con argumentos adicionales.

Paquetes

La nueva versión de Vim incorpora gestión de paquetes de plugins, de modo que resulta más sencillo instalar y desinstalar grupos completos de plugins simplemente gestionando paquetes.

Nuevos style tests

Esta es una nueva característica para los desarrolladores de Vim. En este caso, incorporaron nuevos test style tests que les permiten trabajar con funciones y frameworks para correr los casos de prueba. Esto simplifica mucho la escritura de los tests y su mantención.

Ajuste de línea con indentación

breakindentUna característica muy interesante es la de mantener la indentación por más que la línea supere el ancho de la ventana. Esto facilita, mas que nada en programación, la lectura de código, ya que no hay líneas que comiencen en la primer columna dentro de un bloque de código.

Ahora seteando «breakindent» podemos activar esta característica.

Soporte DirectX y GTK+ 3

Ahore Vim soporta, en equipos Windows, soporte DirectX para renderizado mediante la opción «renderoptions».

Por su parte, mejora el soporte GTK+ en Linux permitiendo la selección entre la versión 2 y 3.

Otras características

En la larga lista de mejoras se incluyen también:

  • Partials para paso de argumentos en funciones temporizadas
  • IDs de ventana
  • Uso de estampas de tiempo de viminfo para mantener los ítems más recientes.
  • Lambda y Closure para creación rápida de funciones utilizando {argumento -> expresion}

Para ver la lista completa de cambios les recomiendo remitirse al changelog o en el sitio oficial.

Instalación de Vim v8.0

archvimEn casi todas las distribuciones que traigan Vim en los respositorios oficiales, el administrador del paquete lo actualizará.

Particularmente en Debian el paquete nuevo se encuentra en los repositorios unstable al momento de escribir este artículo.

En ArchLinux ya está actualizado en los repositorios oficiales.

En Ubuntu podemos esperar a que lo actualicen en el repo oficial, o descargarlo desde un repo alternativo:

sudo add-apt-repository ppa:jonathonf/vim
sudo apt update
sudo apt install vim

Y por supuesto, se puede descargar Vim desde los fuentes y compilarlo, o utilizar repositorios git o cvs. Puedes encontrar esta información en el sitio oficial de descarga.

Espero que el artículo haya sido útil e informativo!

Espero que los fanáticos de Richard Stallman y Emacs no me peguen xD

Cualquier agregado que quieras hacer puedes comentar el artículo o ubicarnos en las redes sociales de JuncoTIC!

Hasta la próxima!

Categorías: AplicacionesLinux

Diego Córdoba

- Ingeniero en Informática - Mg. Teleinformática - Tesis pendiente - Docente universitario - Investigador