- Actualización mayor que incluye grandes mejoras al lenguaje de scripting Vim9, modo diff mejorado, autocompletado completo y soporte experimental para Wayland
- El autocompletado en modo inserción se fortalece con fuzzy matching, completado de palabras basado en registros y nuevas opciones de
completeopt
- Hay mejoras de UI por plataforma, como soporte de UI y portapapeles en Wayland, panel de pestañas vertical y modo oscuro nativo en Windows
- Se amplían las funciones del lenguaje con Enums, funciones genéricas y tipo Tuple, lo que también permite usarlas para desarrollar plugins basados en IA
- Incluso después del fallecimiento de Bram Moolenaar, Vim mantiene la filosofía Charityware, y la organización apoyada se transfiere a Kuwasha
Principales mejoras de funciones
- Mejoras al autocompletado
- En modo inserción se admite fuzzy matching, y es posible completar palabras directamente desde registros (
CTRL-X CTRL-R)
- Se agregan las opciones
nosort y nearest a 'completeopt', lo que permite controlar con más detalle la forma de ordenar los resultados
- Mejoras de plataforma y UI
- Soporte completo para UI y portapapeles en Wayland
- En sistemas Linux/Unix, se cumple con la XDG Base Directory Specification y se usa
$HOME/.config/vim como ruta de configuración
- Se agrega un panel de pestañas vertical y la GUI de Windows soporta modo oscuro en la barra de menús y de título, además de íconos de alta resolución
- Nuevas funciones de aprendizaje
- Se introduce un nuevo plugin de tutor interactivo que se ejecuta con el comando
:Tutor, ofreciendo una experiencia de aprendizaje más moderna que vimtutor
Expansión del lenguaje de scripting Vim9
- Refuerzo de la estructura del lenguaje
- Ahora se admiten Enum, funciones genéricas y tipo de datos Tuple
- Las funciones integradas se unifican como métodos de objeto, y las clases soportan un método protegido
_new() y compilación completa de métodos mediante :defcompile
- Integración con herramientas de IA
- Se publicaron dos proyectos de ejemplo que usan GitHub Copilot
- Battleship in Vim9: implementación del juego clásico usando clases
- Number Puzzle: rompecabezas lógico en forma de plugin interactivo
Mejoras al modo diff
- Algoritmo Linematch
- Se agrega a la configuración de
'diffopt' para alinear cambios entre líneas similares y mejorar la precisión del resaltado
- Diff Anchors
- La opción
'diffanchors' permite especificar puntos de anclaje para alinear por secciones el diff de archivos complejos
- Inline Highlighting
- Muestra con más detalle los cambios dentro de una línea y puede controlarse con la subopción
"inline"
"inline:simple" se incluye en el valor predeterminado de 'diffopt'
Cambios en los valores predeterminados
- Se actualizan varios valores predeterminados para adaptarse a entornos modernos
'history': 50 → 200
'backspace': valor vacío → "indent,eol,start"
'diffopt': "internal,filler" → "internal,filler,closeoff,indent-heuristic,inline:char"
'fontsize' (GTK): 10pt → 12pt
'showcmd' y 'ruler': cambian a activados por defecto
Otras mejoras y corrección de errores
- Desde Vim 9.1 se corrigieron múltiples vulnerabilidades de seguridad, fugas de memoria y fallos
Transición de la labor benéfica
- Disolución de ICCF Holland
- Tras la muerte del fundador Bram Moolenaar, la fundación no pudo mantenerse y fue disuelta
- Los fondos restantes se transfirieron para apoyar el proyecto Kibaale
- Colaboración con Kuwasha
- La organización canadiense Kuwasha asumió la continuidad del proyecto en Uganda y seguirá brindando apoyo
- Continuidad de Charityware
- Vim sigue siendo Charityware, y los usuarios pueden donar a través de Kuwasha
Agradecimientos y distribución
- Se agradece a todas las personas que contribuyeron con parches, traducciones, reportes de errores y más
- La versión más reciente está disponible en la página de descarga
1 comentarios
Comentarios en Hacker News
Da gusto ver que Vim9 siga evolucionando.
Aunque parece que el centro de atención se movió un poco hacia Neovim, el ecosistema de Neovim da la impresión de estar más enfocado en quienes quieren un entorno tipo IDE.
Lo que me da curiosidad es si más desarrolladores de plugins se pasarán a Vim9Script. Como la mayoría de los usuarios de Neovim ya migraron a plugins basados en Lua, parece que hay menos incentivo para dar soporte a ambos lados.
Sobre todo me alegra muchísimo que hayan agregado soporte para tuplas.
Tanto Elisp como Vimscript me parecían demasiado frustrantes.
Aun así, si hubiera podido elegir, probablemente habría preferido otro lenguaje en vez de Lua.
Me impresiona que Vim haya funcionado como Charityware durante más de 30 años.
Después de la muerte de Bram Moolenaar, la fundación ICCF Holland se disolvió, pero los fondos restantes se transfirieron para seguir apoyando el proyecto Kibaale en Uganda.
Yo elegí vim por razones técnicas, pero me dio aún más gusto saber que Bram mantuvo este tipo de labor benéfica con tanta buena voluntad.
Al final, el hecho de que ya viniera incluido en la distribución de Linux simplemente se dejó pasar en silencio.
Aun así, apoyo totalmente la intención de Bram.
Soy fan de vim, pero al final me cambié a nvim.
Honestamente, ojalá los mantenedores de vim encontraran alguna forma de fusionarlo de algún modo con nvim.
Funciona igual en mi máquina local, en mi Raspberry Pi y en una VM con Ubuntu 20.04.
La clave de Vim es su sencillez y consistencia; si quieres más funciones, mejor usar vscode con la extensión de vim.
Probé nvim hace tiempo, pero no le vi grandes ventajas, y como el comando
:shse comportaba distinto, lo dejé.En lo personal, me gusta la dirección que está tomando vim9.
La verdad, no me gusta Lua. Que toda la infraestructura vaya hacia Lua ya parece inevitable.
Qué bueno que se resolvió el soporte para XDG.
init.nvimlea~/.vimrc, no hay problema.Se siente fresco que este lanzamiento sea una gran actualización sin IA, al grado de que hasta dan ganas de hacer el chiste de “¿dónde están las funciones de IA?”.
Esa fue una de las razones por las que antes me pasé a Sublime Text, y ahora también es una función esencial en VSCode y Zed.
Hay plugins para eso, pero creo que si fuera soporte nativo sería mucho más potente.
Hubo una época en la que Bram Moolenaar se negaba a actualizar vim hasta antes de que apareciera Neovim.
Me pareció raro que no estuviera la etiqueta v9.2 en la lista de tags de GitHub.
Después de mucho tiempo de interés, por fin empecé a aprender vim en serio.
Gracias a la IA ahora tengo tiempo libre entre solicitudes y puedo dedicarle tiempo a aprender, y pedirle a un IDE o a una IA que haga cambios simples incluso me parece más lento.
Gracias a un flujo de trabajo agéntico, ahora puedo hacer ajustes finos y tareas repetitivas mucho más rápido.
Antes era un evangelizador de vim, pero ahora resuelvo la mayoría de los bugs con comandos de voz y ediciones con IA.
Aun así, sigo amando la filosofía de vim.
Me da muchísimo gusto saber que vim sigue avanzando.
La GUI de Windows ahora pasa a soportar modo oscuro, pantalla completa mejorada e íconos de alta resolución.
Felicidades por la nueva versión; tengo muchas ganas de ver el día en que pueda aprovechar estas mejoras tan buenas.