- Mise à jour majeure incluant de grandes améliorations du langage de script Vim9, un mode diff amélioré, des fonctions d’autocomplétion complètes et un support expérimental de Wayland
- L’autocomplétion en mode insertion est renforcée avec le fuzzy matching, la complétion de mots basée sur les registres et de nouvelles options
completeopt
- Des améliorations d’interface propres à chaque plateforme ont été apportées, comme le support de l’UI et du presse-papiers Wayland, un panneau d’onglets vertical et le mode sombre natif de Windows
- Les fonctionnalités du langage ont été étendues avec les enums, les fonctions génériques et le type tuple, ce qui ouvre aussi la voie au développement de plugins basés sur l’IA
- Même après le décès de Bram Moolenaar, Vim conserve sa philosophie Charityware, et l’organisation soutenue a été transférée à Kuwasha
Principales améliorations
- Renforcement de l’autocomplétion
- Le mode insertion prend en charge le fuzzy matching et permet de compléter directement des mots depuis les registres (
CTRL-X CTRL-R)
- Les options
nosort et nearest ont été ajoutées à 'completeopt', permettant de contrôler finement le tri des résultats
- Améliorations de plateforme et d’interface
- Support complet de l’UI Wayland et du presse-papiers
- Sur Linux/Unix, respect de la XDG Base Directory Specification, avec utilisation de
$HOME/.config/vim comme chemin de configuration
- Ajout d’un panneau d’onglets vertical ; la GUI Windows prend désormais en charge le mode sombre pour les menus et la barre de titre, ainsi que les icônes haute résolution
- Ajout d’outils d’apprentissage
- Un nouveau plugin de tutoriel interactif, lancé avec la commande
:Tutor, offre une expérience d’apprentissage plus moderne que vimtutor
Extensions du langage de script Vim9
- Renforcement des structures du langage
- Prise en charge nouvelle des enums, des fonctions génériques et du type de données tuple
- Les fonctions intégrées sont intégrées comme méthodes d’objet, et les classes prennent en charge une méthode protégée
_new() ainsi que la compilation complète des méthodes via :defcompile
- Intégration avec les outils d’IA
- Deux projets d’exemple utilisant GitHub Copilot ont été publiés
- Battleship in Vim9: implémentation du jeu classique à l’aide de classes
- Number Puzzle: puzzle logique sous forme de plugin interactif
Améliorations du mode diff
- Algorithme Linematch
- Nouvel ajout dans la configuration
'diffopt', il aligne les modifications entre lignes similaires et améliore la précision de la mise en surbrillance
- Diff Anchors
- L’option
'diffanchors' permet de définir des points d’ancrage pour aligner les diffs par section dans les fichiers complexes
- Inline Highlighting
- Affiche finement les modifications à l’intérieur d’une même ligne, avec contrôle via la sous-option
"inline"
"inline:simple" est inclus dans la valeur par défaut de 'diffopt'
Changements des valeurs par défaut
- Plusieurs valeurs de configuration par défaut ont été mises à jour pour correspondre à un environnement moderne
'history': 50 → 200
'backspace': valeur vide → "indent,eol,start"
'diffopt': "internal,filler" → "internal,filler,closeoff,indent-heuristic,inline:char"
'fontsize' (GTK): 10pt → 12pt
'showcmd', 'ruler': activés par défaut
Autres améliorations et corrections de bugs
- Depuis Vim 9.1, de nombreux correctifs de failles de sécurité, de fuites mémoire et de plantages ont été apportés
Transition de l’action caritative
- Dissolution d’ICCF Holland
- Après le décès du fondateur Bram Moolenaar, la fondation n’a pas pu être maintenue et a été dissoute
- Les fonds restants ont été transférés pour soutenir le projet Kibaale
- Coopération avec Kuwasha
- L’organisation canadienne Kuwasha a repris le projet en Ouganda afin de poursuivre le soutien
- Pérennité de Charityware
- Vim reste un logiciel Charityware, et les utilisateurs peuvent faire un don via Kuwasha
Remerciements et distribution
- Remerciements à tous les contributeurs ayant participé avec des patchs, des traductions et des rapports de bugs
- La dernière version est disponible sur la page de téléchargement
1 commentaires
Commentaires Hacker News
Ça fait plaisir de voir Vim9 continuer à évoluer
Même si le centre de gravité semble s’être un peu déplacé vers Neovim, l’écosystème Neovim paraît davantage ciblé sur ceux qui veulent un environnement proche d’un IDE
Je me demande surtout si davantage d’auteurs de plugins vont migrer vers Vim9Script. Comme les utilisateurs de Neovim sont majoritairement passés aux plugins basés sur Lua, il semble y avoir moins de motivation à prendre en charge les deux côtés
Je suis particulièrement ravi de l’ajout du support des tuples
Elisp comme Vimscript étaient trop frustrants pour moi
Cela dit, si j’avais eu le choix, j’aurais sans doute préféré un autre langage que Lua
Le fait que Vim soit proposé en charityware depuis plus de 30 ans est impressionnant
Après le décès de Bram Moolenaar, la fondation ICCF Holland a été dissoute, mais les fonds restants ont été transférés afin de continuer à soutenir le projet Kibaale en Ouganda
J’ai choisi vim pour des raisons techniques, mais j’ai été encore plus fier de l’utiliser en apprenant que Bram poursuivait ce type d’action caritative avec autant de bienveillance
Au final, le fait qu’il soit déjà inclus dans la distribution Linux a simplement été passé sous silence
Je soutiens malgré tout entièrement l’intention de Bram
Je suis un fan de vim, mais j’ai fini par passer à nvim
Honnêtement, j’aimerais que les mainteneurs de vim trouvent un moyen de fusionner d’une manière ou d’une autre avec nvim
Ça fonctionne de la même manière sur ma machine locale, mon Raspberry Pi et ma VM Ubuntu 20.04
La simplicité et la cohérence sont au cœur de Vim ; si on veut davantage de fonctionnalités, autant utiliser vscode avec l’extension vim
J’ai essayé nvim autrefois, mais je n’y ai pas vu de gros avantage, et j’ai abandonné parce que la commande
:shs’y comportait différemmentPersonnellement, j’aime la direction prise par vim9
Honnêtement, je déteste Lua. Le fait que toute l’infrastructure parte en Lua semble devenu inévitable
C’est déjà une bonne chose que la prise en charge de XDG ait été réglée
~/.vimrcparinit.nvimet tout se passe bienCette release donne presque envie de faire la blague « Où sont les fonctionnalités IA ? », tant il est rafraîchissant de voir une grosse mise à jour sans IA
C’était d’ailleurs pour ça que j’étais passé à Sublime Text à l’époque, et c’est indispensable aujourd’hui dans VSCode ou Zed
Il existe des plugins, mais ce serait bien plus puissant avec une prise en charge native
Il fut un temps où Bram Moolenaar refusait de mettre vim à jour jusqu’à l’arrivée de Neovim
J’ai trouvé étrange qu’il n’y ait pas de tag v9.2 dans la liste des tags GitHub
Après longtemps m’y être intéressé, j’ai enfin commencé à vraiment apprendre vim
Grâce à l’IA, j’ai maintenant du temps entre deux demandes pour apprendre, et demander de simples modifications à un IDE ou à une IA me paraît au contraire plus lent
Grâce à un workflow agentique, je peux faire bien plus vite des modifications fines et des tâches répétitives
Avant, j’étais un évangéliste de vim, mais aujourd’hui je règle la plupart des bugs avec des commandes vocales et des corrections par IA
J’aime toujours autant la philosophie de vim malgré tout
C’est vraiment une très bonne nouvelle de voir vim continuer à évoluer
La GUI Windows prend désormais en charge le mode sombre, un plein écran amélioré et des icônes haute résolution
Félicitations pour cette nouvelle release, et j’ai hâte d’essayer ces superbes améliorations