IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La version 9.0 de l'éditeur de texte Vim est disponible, avec une nouvelle déclinaison du langage de script,
Et une amélioration des performances

Le , par Bruno

8PARTAGES

18  0 
Après de nombreuses années d'amélioration, Vim fait une grande sortie avec une version majeure. La version 9.0 de l’éditeur Vim est disponible, l’annonce a été effectuée par l’équipe de développement de Vim ce mois de juin. Outre de nombreux petits ajouts, les regards se tournent vers une nouvelle implémentation du langage de script Vim : le script Vim9, avec pour objectif de se rapprocher des langages de programmation couramment utilisés, tels que JavaScript, TypeScript et Java.

La version précédente était la version 8.2 en décembre 2019. Comme le dernier code source est toujours disponible sur GitHub, beaucoup ont déjà récupéré les versions de correctifs ultérieures. Par conséquent, les changements ont déjà été testés par de nombreux utilisateurs. Selon l’équipe de développement de Vim, la version 9.0 de Vim est plus fiable que toutes les précédentes.


Rappelons que Vim est un logiciel permettant la manipulation de fichiers texte (éditeur de texte). Il est directement inspiré de vi2 (un éditeur très répandu sur les systèmes d’exploitation de type Unix), dont il est un (fork). Son nom signifie d’ailleurs Vi IMproved, que l’on peut traduire par « VI aMélioré ».

Bien que Vim ait de nombreuses fonctionnalités, il conserve un temps de démarrage court et reste ainsi limité pour des modifications simples et ponctuelles (de fichiers de configuration par exemple). Vim est un éditeur de texte extrêmement personnalisable, que ce soit par l'ajout d'extensions, ou par la modification de son fichier de configuration, écrits dans son propre langage d'extension, le Vim script.

Depuis des décennies, il est l’un des éditeurs de texte les plus appréciés dans la catégorie des émulateurs basé sur un terminal. En fait, ce serait l'un des plus anciens projets open source qui a survécu au fil du temps.

Il y a beaucoup de très bons éditeurs de terminal comme nano, mais pour certains utilisateurs, ils seraient loin d'atteindre l'extensibilité et les fonctions et modes de vim. Vim se différencie de la plupart des autres éditeurs par son fonctionnement en mode, hérité de vi. En effet, il possède trois modes de base : le mode normal ou mode commande (dans lequel vous êtes lorsque Vim démarre), le mode insertion, et le mode ligne de commande.

L’arrivé de Neo-vim un fork de vim, souvent salué de manière très controversée comme le futur de vim vise à améliorer l'extensibilité et la maintenabilité de Vim. Neo-vim est directement inspiré de Vim, il partage la même syntaxe de configuration avec Vim ; par conséquent, le même fichier de configuration peut être utilisé avec les deux éditeurs (à quelques différences près). Alors, beaucoup se demandent si Neovim, l’éditeur de texte tiré de Vim sera compatible avec le nouveau langage de script, Vim9 script.

Comme Vim, Neovim est conçu pour fonctionner dans un terminal, bien qu'il puisse être intégré dans des fenêtres graphiques. Neovim partage la plupart des fonctionnalités de Vim, la principale différence étant la configuration par défaut.

Neovim offre un support beaucoup plus important pour la configuration de Lua, un langage de script libre, réflexif et impératif. (Vim supporte également Lua, mais beaucoup moins que Neovim). Le but ici est de faciliter la configuration et l'écriture de scripts/plugins dans un langage désormais répandu et de s'éloigner progressivement du vieillissant vim-script pour la partie configuration. L'organisation déclare cependant qu'elle ne veut pas abandonner le support de vim-script pour des questions de compatibilité avec les anciens plugins et avec Vim, le projet officiel.

L'objectif principal du script Vim9 est d'améliorer radicalement les performances. Ceci est réalisé en compilant les commandes en instructions qui peuvent être exécutées efficacement. Selon l’équipe de développement de vim, les utilisateurs peuvent s'attendre à une augmentation de la vitesse d'exécution de 10 à 100 fois.

Un objectif secondaire est d'éviter les constructions spécifiques à Vim et de se rapprocher des langages de programmation couramment utilisés, tels que JavaScript, TypeScript et Java.
Les améliorations de performances ne peuvent être obtenues qu'en n'étant pas 100 % rétrocompatible. Par exemple, la mise à disposition des arguments de fonction par la création d'un dictionnaire a : implique une surcharge importante. Dans une fonction Vim9, ce dictionnaire n'est pas disponible. D'autres différences sont plus subtiles, comme la façon dont les erreurs sont gérées.

Voici, ci-dessous, quelques caractéristiques de la version 9.0 de Vim :

Pour bénéficier de l'accélération, une fonction doit être définie avec def. Les types d'arguments et de retour doivent être spécifiés. Cela permet non seulement d'accélérer l'exécution, mais aussi de découvrir les erreurs à un stade précoce, lorsque la fonction est compilée en byte code. Les variables sont déclarées avec var et ont également un type, soit explicitement, soit déduit de la valeur assignée.

La suite de la ligne ne nécessite pas l'utilisation d'une barre oblique inversée, le mécanisme utilisé dans les scripts hérités, ce qui est un peu curieux et était nécessaire pour maintenir la compatibilité ascendante. Les appels de fonction ne nécessitent pas de call, les affectations sont effectuées sans let et les expressions sont évaluées sans eval. Ainsi, un script Vim9 ressemble beaucoup plus à la plupart des langages de programmation.

La division d'un grand script en petits morceaux a été rendue beaucoup plus simple. Dans un script, l'exportation est utilisée pour mettre des fonctions et des variables spécifiques à la disposition d'autres scripts. Le reste est local au script. Ensuite, l'importation est utilisée là où les éléments exportés doivent être utilisés. Combiné avec un mécanisme d'autoload, cela constitue une manière flexible et puissante d'implémenter de grands plugins. Avec la version 9.0 de Vim, les commentaires commencent maintenant par #. L'ancienne syntaxe des guillemets doubles, qui provient du bon vieux Vi, interfère avec l'utilisation des chaînes de caractères. L'utilisation de # est connue de nombreux autres langages, comme Python et les scripts shell.

Les grands projets open source sont souvent soutenus par une communauté de développeurs qui supportent et développent le projet ensemble. Bien que Vim et Neovim soient tous deux des projets open source et qu'ils soient hébergés sur GitHub, il existe une différence significative entre leur mode de développement. Pendant une longue période, des développeurs du monde entier ont contribué à Vim.

Neovim a organisé avec succès une collecte de fonds le 23 mars 2014, pour soutenir au moins un développeur à plein temps. Aujourd’hui, NeoVim est plus un projet alimenté par la communauté, avec des contributions provenant de diverses personnes. La base d'utilisateurs et la base de développeurs sont plutôt petites comparées à vim, mais NeoVim reste un projet en pleine croissance.

Source : Vim

Et vous ?

Quel éditeur de texte utilisez-vous ?

Avez-vous une expérience avec Vim ? Comparé aux autres éditeurs, comment trouvez-vous Vim ?

Quelle appréciation faites-vous des améliorations apportées à la version 9.0 de Vim ?

Que pensez-vous de Vim9 script ? Quel regard portez-vous sur Neovim ?

Quel est selon vous le meilleur éditeur de texte ?

Voir aussi :

L'éditeur de texte nano est disponible en version 5.0, avec des améliorations au niveau du menu principal, l'ajout de syntaxes pour Markdown, Haskell et Ada et plusieurs autres changements

LaTeX : la version 2.3 de l'éditeur de texte graphique LyX est disponible et intègre désormais la gestion du moteur de bibliographie Biblatex

Sortie de Qt Creator 4.2, avec un éditeur de machines d'états SCXML, un mode Projet réorganisé et un éditeur visuel Qt Quick amélioré

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de AoCannaille
Expert confirmé https://www.developpez.com
Le 01/07/2022 à 10:13
Citation Envoyé par Bruno Voir le message

Bien que Vim ait de nombreuses fonctionnalités, il conserve un temps de démarrage court et reste ainsi limité pour des modifications simples et ponctuelles (de fichiers de configuration par exemple).
Certains puristes peuvent passer une aprés midi à expliquer que cette phrase est fausse et qu'ils utilisent vim pour gérer des projets de centaines de milliers de lignes.

Et ils ont raison.

Mais bon, ils sont un peu maso.

Blague à part, je n'utilise vim régulièrement que pour "des modifications simples et ponctuelles" et je suis ravi de voir que ce logiciel continue d'évoluer. Pouvoir traiter des fichiers générés de plusieurs dizaines de milliers de lignes en une fraction de seconde, il n'y a, à ma connaissance, que Vim qui sait faire ça. Même emacs, dés qu'on rajoute quelques plugins, va mettres quelques secondes à le faire.

A côté de ça, VsCode plantera
5  0 
Avatar de pyros
Membre expérimenté https://www.developpez.com
Le 01/07/2022 à 10:18
Mes études m'aillant dégouté d'emacs (éditeur imposé par les profs...), je me suis tourné vers Vim lorsque j'ai commencé à bosser et je dois dire que plus de 10 ans après, c'est toujours mon éditeur de prédilection pour modifier rapidement un fichier.
Il est extrêmement réactif, la conf tient dans un fichier (ou un dossier si on souhaite embarquer ses plugins), donc très facile à trimballer lorsqu'on change de PC/boulot.

De plus, comme vi est POSIX, on est certain de le trouver sur à peu près n'importe quel serveur Linux. Donc, on n'est pas trop perdu quand on doit admin une machine à distance
5  0 
Avatar de selmanjo
Membre régulier https://www.developpez.com
Le 02/07/2022 à 14:55
Je suis un nouvel utilisateur de Vim et j'avoue que cet éditeur est beaucoup plus fiable. Vim est disponible partout sur terminal avec ssh, il est donc excellent !
2  0 
Avatar de richard
Membre éclairé https://www.developpez.com
Le 17/01/2024 à 18:29
Je suis visiblement un vieux con au regard du commentaire précédent, j'utilise Vim quotidiennement. Pourtant je ne suis pas programmeur de métier même si je suis sous Linux (perso depuis 2007 et une partie des PCs au boulot). J'utilise Vim pas tellement pour coder car la plupart du temps j'utilise Pharo pour mes programmes (je suis un "para programmeur" comme on dit) et c'est un environnement complet, donc à part quelques scripts en bash, j'utilise Vim pour taper du texte (et j'en tape beaucoup étant prof non pas d'informatique... mais de Lettres avec un tropisme vers la linguistique !).

Pour avoir été confronté à de multiples traitements de texte lourds, lents, parfois bugués qui ne font pas toujours ce que je veux comme je le veux qui mettent plein de trucs dans mes fichiers et pour avoir perdu inévitablement des heures de boulot car impossible de recharger correctement un texte à la mise en page un peu complexe j'ai basculé sur Vim il y a des années aussi (et surtout) pour mon travail de rédaction de textes. Avant j'utilisais LaTeX et un éditeur dédié mais Vim avec Pandoc me satisfait totalement, j'ai considérablement amélioré ma productivité, le format étant du markdown je peux tout relire avec n'importe quel éditeur, mes diaporamas sont faits à partir de mes textes tapés sous Vim, comme mes PDF, comme les Docx que je suis parfois obligés de produire, comme les fichiers HTML etc. Et si j'ai besoin de plus, je reviens dans ce cas à LaTeX... avec Vim (le mode LaTeX je le trouve très bien).

La crampe de l'index ne me menace plus, je laisse les clicodromes aux jeunes up-to-date, je fais plus avec trois lignes d'instructions sous Vim qu'avec une dizaine de clics sous LibreOffice ou Word (que je suis parfois obligé d'utiliser au taf mais c'est rare).

Bref, je ne changerais pour rien au monde. Chacun ses choix.
1  0 
Avatar de richard
Membre éclairé https://www.developpez.com
Le 17/01/2024 à 18:33
Citation Envoyé par Mingolito Voir le message


Les jeunes sont passés sous JetBrains depuis longtemps...
Aucun djeuns ne travaille comme sysadmin ?

Parce que tous ceux que je connais n'utilisent pas JetBrains, ils utilisent Vim la plupart du temps
1  0 
Avatar de Dominiqly
Candidat au Club https://www.developpez.com
Le 03/07/2022 à 22:52
J'utilise Vi depuis 1985 environ (sous UNIX ainsi que sous MS-DOS et Windows grâce à la version de MKS Toolkit).
La variante Vim est depuis de nombreuses années mon outil quotidien (développeur, administrateur Linux) sous Linux et Windows au travail et à la maison.
Merci à l'équipe Vim de continuer l'amélioration de cet indispensable outil.
0  0 
Avatar de Mingolito
Membre extrêmement actif https://www.developpez.com
Le 04/07/2022 à 17:24
Très bien pour les personnes très âgées ou à la retraite, c'est les même qui continuent d'utiliser Lotus 1/2/3, Wordprefect, dBase III, et un Poste radio à galène

Les jeunes sont passés sous JetBrains depuis longtemps...

La radio d'un utilisateur de VIM :
1  1