VimVim
Capture d'écran de Vim.
Vim est un éditeur de texte, c’est-à-dire un logiciel permettant la manipulation de fichiers texte. Il est directement inspiré de vi[3] (un éditeur très répandu sur les systèmes d’exploitation de type Unix), dont il est le clone le plus populaire. Son nom signifie d’ailleurs Vi iMproved, que l’on peut traduire par « VI aMélioré ». 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. Bien qu'il ait de nombreuses fonctionnalités, il conserve un temps de démarrage court (même agrémenté d'extensions) et reste ainsi adapté pour des modifications simples et ponctuelles (de fichiers de configuration par exemple). Vim se différencie de la plupart des autres éditeurs par son fonctionnement modal, 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[3]. Vim est un logiciel libre. Son code source a été publié pour la première fois en 1991 par Bram Moolenaar, son principal développeur durant de longues années. Depuis, ce dernier avait continué de l’améliorer (il est décédé en 2023), avec l’aide de nombreux contributeurs. La communauté poursuit désormais son œuvre. PrésentationDans un terminal informatique, Vim fonctionne en mode texte plein écran, comme l’éditeur de texte vi. Il propose énormément de fonctions qui sont, pour la grande majorité, accessibles au clavier. Ceci s’explique par des raisons historiques : les premières versions de vi datent du milieu des années 1970, époque à laquelle les téléscripteurs, les terminaux alors les plus répandus, étaient incapables de supporter le mode Wysiwyg faute d'écran cathodique (l'impression sur papier d'une dizaine de lignes de code pouvait prendre près d'une minute). L'ergonomie de Vi, à base de raccourcis clavier, permettait de réduire la quantité de texte à imprimer pour effectuer et vérifier les modifications apportées au fichier. Vim peut, si l'utilisateur le souhaite [4], être compatible à 100 % avec vi. De très nombreuses améliorations et fonctionnalités ont été ajoutées à Vim, et ne sont pas présentes dans Vi, comme la gestion de la souris, le repliement, la coloration syntaxique... De plus, depuis la version 4.0, Vim dispose d’une interface utilisateur graphique moderne, GVim. Il existe deux autres versions de Vim : l'une, simplifiée pour les utilisateurs débutants, eVim (le "e" pour easy) ; et l'autre, Vim-Tiny, plus compacte[5]. Cette dernière est une version minimale de vim compilée sans interface graphique, avec seulement un petit sous-ensemble de fonctions : elle prend à peine plus d'espace-mémoire que nvi[6]. Certaines fonctionnalités, telles que la coloration syntaxique, ne sont pas incluses dans Vim-Tiny. Vim est utilisable sur de nombreux systèmes d’exploitation et est disponible sur pratiquement toutes les distributions GNU/Linux. En général, l’exécutable vi sur Linux correspond à un lien ou à un alias appelant Vim. Quand Vim est déjà lancé, il est possible de connaître sa version en utilisant la commande HistoireBref historique sur ed/viAu début des années 1970, l’éditeur standard d’Unix était ed[7] de Ken Thompson. ed ne permettait qu’une édition ligne par ligne, et n’affichait pas l’intégralité du texte comme cela est aujourd’hui habituel. Il fallait pour cela demander explicitement l’affichage du fichier (par la commande Les commandes de ed sont principalement composées d’une lettre, précédée d’une indication donnant les lignes sur lesquelles agir. En 1976, quand Bill Joy développa vi, le progrès fut considérable, puisqu’il considérait l’écran dans son ensemble et qu’il reportait les modifications apportées au texte édité dans la représentation qu’il en donnait[8]. vi a hérité de ed le concept des modes et les instructions obscures. On retrouve aujourd’hui encore ces particularités dans les éditeurs compatibles avec vi, en particulier Vim. Développement de VimÀ la fin des années 1980, quand Bram Moolenaar s’est acheté un ordinateur de marque Commodore Amiga[9], il souhaitait avoir la possibilité d’utiliser l’éditeur qu’il connaissait et auquel il était habitué sur UNIX ; mais Au cours des années suivantes, Vim a connu de nombreuses améliorations. Une étape importante fut l’introduction des fenêtres multiples dans la version 3.0 (en 1994). Avant cela, il était déjà possible d’éditer plusieurs fichiers dans Vim, mais un seul fichier était visible à la fois, il n’était pas possible d’afficher plusieurs fichiers simultanément. Avec la version 4.0 (datant de 1996) fut ajoutée pour la première fois une interface utilisateur graphique, en grande partie écrite par Robert Webb. La version 6.0 a vu le jour en 2001 : repli du texte, greffons, support de l’internationalisation, partage vertical des fenêtres. Depuis la sortie de la version 5.4 en , des patchs sont publiés pour corriger les erreurs et éliminer les bugs. La dernière étape notable de Vim est survenue en 2006 avec la version 7.0[10]. Son développement a débuté en 2004 [11] et elle intègre en particulier la vérification et la correction orthographique, le support des onglets et un complètement personnalisable selon les langages. Le principe fondamental du développeur principal de Vim reste toujours le même : Vim doit rester un éditeur de texte et être le plus possible au service de l’utilisateur. Vim suit un rythme de développement très actif et des nouvelles versions sont publiées quotidiennement[12],[13]. Résumé des versions
Note : Dans son aide interne, Vim comporte le détail des modifications entre chaque version. Par exemple, la commande du mode Normal Caractéristiques fonctionnellesVue générale
L’efficacité de Vim est notamment due à plusieurs améliorations marquantes par rapport à vi. Plates-formesVim fonctionne sur de nombreux systèmes d’exploitation. Cet aspect multi-plateforme est important pour les utilisateurs travaillant sur plusieurs environnements différents, comme les administrateurs systèmes. Avec Vim, ils trouvent un éditeur quasi identique pour tous ces systèmes : AmigaOS, Atari MiNT, BeOS, MS-DOS, Mac OS, NeXTSTEP, OS/2, OSF, RiscOS, SGI, UNIX, VMS, Win16 + Win32 (Windows 95/98/2k/NT/XP/Vista/2k3), et tous les systèmes BSD et GNU/Linux. Aide interneVim possède une documentation établie selon le précepte : « Une fonctionnalité non documentée est une fonctionnalité inutile ». La documentation en mode texte occupe pratiquement 4 mégaoctets. L’utilisateur a la possibilité d’utiliser différentes fonctions de recherche. Grâce à la coloration syntaxique et à une manière spécifique de rédiger les fichiers d’aide, les notions principales sont mises en valeur. Les sujets documentés (désignés par des mots-clés) ont une couleur particulière et apparaissent entourés par des barres verticales. Le déplacement dans l’aide s’effectue grâce à des liens hypertextes. Cette navigation se pratique à l’aide de commandes claviers, mais est également possible par l’intermédiaire de la souris, dans l’interface graphique. Il existe d’autres commandes encore pour faciliter les recherches de l’utilisateur, en particulier la commande L’aide interne est complétée par une version HTML disponible en ligne sur Internet, une Foire Aux Questions, une littérature nombreuse et variée en français ou en anglais, et bien d’autres sources d’informations encore. Le site (en) VimDoc donne accès à de nombreuses informations sur la documentation existante. L'installation de Vim sur un ordinateur se fait conjointement à Vimtutor, un programme tutoriel visant à aider les utilisateurs débutants à prendre en main les commandes basiques de Vim en environ une demi-heure[15],[16]. Comparaison de fichiersVim donne la possibilité d’afficher facilement deux (ou trois) versions d’un fichier côte à côte et de mettre dans une couleur différente leurs différences. Les lignes ajoutées ou supprimées ont leur propre couleur, tandis que les lignes communes sont repliées afin de les masquer. Le défilement vertical des fenêtres des fichiers comparés est synchronisé, afin de conserver les lignes identiques constamment face à face. Des commandes permettent de placer le curseur sur les différences suivantes ou précédentes ( Fonctionnalités pour les programmeursVim est un éditeur de texte écrit pour les programmeurs. Pour leur faciliter la tâche, il existe un mode de fonctionnement appelé Quickfix, simplifiant le cycle « édition-compilation-correction ». Comme dans un environnement de développement intégré, le code source édité est directement compilé depuis Vim, qui appelle le compilateur approprié. Si des erreurs surviennent pendant la compilation, elles sont affichées dans une nouvelle fenêtre. Dans la fenêtre contenant le code source, il est alors possible de sauter directement à la ligne concernée par le message d’erreur pour la corriger. Ainsi un nouveau cycle de compilation peut recommencer et les éventuelles nouvelles erreurs être corrigées. Vim offre aussi la coloration syntaxique et la possibilité de replier certaines parties de leur code (voir Langage de script VimVim dispose d’un langage de script programmable et extensible. Ainsi les traitements trop complexes pour être effectués à l’aide d’une macro peuvent être automatisés. Les scripts Vim peuvent être appelés explicitement au démarrage de Vim avec l’option -s de la ligne de commande, ou bien automatiquement s’ils se trouvent dans le répertoire approprié. Quand Vim est déjà démarré, la commande Dans le langage de script Vim, toutes les commandes du mode ligne-de-commande sont disponibles en tant qu’instructions, ainsi que les commandes du mode Normal grâce à la commande Avant d’écrire un script, il vaut mieux vérifier la page des scripts Vim, pour s’assurer qu’un script fonctionnellement équivalent n’existe pas déjà. Bien que de nombreux scripts soient destinés à faciliter la programmation, les utilisateurs non-programmeurs auront tout à gagner à y jeter un œil. En effet, tout utilisateur ayant résolu un problème général a pu mettre ses scripts à disposition. Par exemple, le script Vim « calendar » permet d’organiser ses échéances de manière très simple. Une fois copié dans le répertoire adapté, il suffit de l’appeler avec la commande ModesVim est un éditeur modal[17]. Cela signifie que l’on effectue différentes tâches dans différents modes, ce qui pose bien souvent des problèmes aux débutants. Pour voir dans quel mode on se trouve, il est possible d’activer l’option Mode NormalVim démarre en mode Normal, aussi appelé mode Commande. Dans ce mode, il est par exemple possible de copier des lignes ou de les déplacer grâce à des raccourcis, de mettre du texte en forme, ou de se déplacer dans le fichier. Il s’agit du mode central, en ce sens qu’il permet d’accéder à tous les autres modes. Mode InsertionLe mode Insertion est le plus naturel, car il se comporte comme la plupart des autres éditeurs. On peut passer du mode Normal au mode Insertion avec la commande Mode Ligne-de-commandeOn atteint ce mode en tapant d’abord le caractère deux-points «
Après un appui final sur la touche Entrée, la commande est exécutée et Vim retourne dans le mode Normal (exceptions faites des commandes « Mode VisuelCe mode constitue une amélioration par rapport à vi et ressemble au mode Normal. À l’aide d’un raccourci, une zone de texte, par exemple une suite de caractères (raccourci Mode SélectionCe mode débute par le mode Visuel, dans lequel on choisit une zone de texte. Ensuite, on accède au mode Sélection avec le raccourci Mode ExCe mode ressemble au mode Ligne-de-commande, à la différence que Vim ne
retourne pas dans le mode Normal après l’exécution de chaque commande. Le raccourci Détracteurs et défenseursVim est réputé pour être l’un des éditeurs de texte les plus puissants, traditionnellement en concurrence avec Emacs ; la lutte entre Vimistes et Emacistes est une source intarissable de troll. CritiquesLes habitués d'éditeurs simples comme Gedit ou même, en mode texte, nano, ne seront pas tout de suite pleinement efficaces avec des éditeurs tels que vi ou Vim, dont le principe de fonctionnement diffère de beaucoup d'autres éditeurs par ses deux modes, « commande » et « insertion ». L’utilisateur débutant peut éprouver des difficultés dans l'utilisation des différents modes. Pour le néophyte, le fonctionnement d'Emacs peut sembler plus naturel : chaque pression d'une touche du clavier affiche le caractère correspondant à l'écran. Emacs, pour sa part, ne nécessite pas de va-et-vient entre les modes « commande » et « insertion ». Vim tout comme Emacs, en raison de leur puissance, sont riches de commandes et chacun doit de ce fait être étudié quelque temps pour pouvoir être utilisé. De nombreuses commandes de Vim (comme de Vi) possèdent des raccourcis obscurs que très peu d'utilisateurs connaissent intégralement, ce qui peut entraîner des frustrations. En contrepartie, Vim et Vi accélèrent considérablement les tâches répétitives comme on en rencontre dans une migration ou un portage de code source. DéfenseursLes défenseurs de Vim répondent que la contrepartie du temps important de formation est une productivité plus importante comparée aux autres éditeurs. Les raccourcis des commandes sont bien souvent des initiales des phrases indiquant la tâche à effectuer. Par exemple la commande Les défenseurs de Vim comparent souvent celui-ci à Emacs car, pour l'édition de texte, le paramétrage des raccourcis par défaut y est plus rapide et ergonomique[réf. nécessaire]. Les défenseurs de Vim disent par exemple souvent qu'Emacs est un acronyme de « Esc Meta Alt Ctrl Shift », raillant ainsi les nombreuses combinaisons de touches nécessaires pour activer les diverses fonctions d'Emacs[18]. Enfin, Vim est léger et rapide. Disponible sur de nombreuses plates-formes, il convient parfaitement au traitement des fichiers de configuration. Faits établis et consensusPour pouvoir travailler efficacement avec Vim, il est d’abord nécessaire de comprendre le principe des modes. Avec une connaissance de base de quelques commandes du mode Normal, Vim est utilisable. Toutefois, pour travailler efficacement, et devenir potentiellement plus productif qu’avec tout autre éditeur, il est nécessaire de connaître un grand nombre de raccourcis et d’atteindre une certaine maîtrise dans leur utilisation. L’une des autres qualités de Vim est qu’il est hautement paramétrable (raccourcis, touches, menus, définition de nouvelles fonctions, etc.). Cette caractéristique a permis notamment d’introduire le mode Vim Easy (depuis la série 6.x), permettant à Vim de se comporter comme un éditeur de texte classique (« amodal »), ce qui le met à la portée des non-initiés. Fait notableGmail reprend certaines touches de fonction de Vim, pour pouvoir naviguer et traiter les messages de la boîte aux lettres sans l’aide de la souris[19] (si l’option « Raccourcis clavier » est activée). Cette reprise des touches de raccourci, témoigne d'un certain niveau de popularité de Vim et de son utilisation dans les milieux informatiques. D'autres sites tels que Facebook ou encore Github utilisent les raccourcis Vim pour la navigation[20]. Récompenses et distinctionsEn 1999, Vim a reçu le Linuxworld Editors’ Choice Award puis, en 2000, le Slashdot Beanie Award en tant que Best Open Source Text Editor De 2001 à 2005, Vim a gagné le prix Readers’ Choice Awards du Linux Journal dans la catégorie Favorite Text Editor. LicenceVim est un logiciel libre dont la licence est compatible avec la GPL, ce qui signifie que vous pouvez le distribuer librement. Vim est aussi un caritaticiel — c’est-à-dire que si vous l’utilisez, vous êtes encouragé à faire un don en faveur d’ICCF Holland, pour les orphelins en Ouganda. Cette association, basée aux Pays-Bas, a été fondée par Bram Moolenaar et il en était le trésorier[21] jusqu'en 2023. Développement et communautéVim a été principalement développé par Bram Moolenaar, aidé par de nombreux contributeurs. La page correspondante de l’aide intégrée ( Tous les utilisateurs peuvent publier leurs scripts Vim[22] ou donner leurs astuces et conseils[23] d’utilisation sur le site Internet de Vim[24]. Une liste de diffusion très active permet à chacun, débutant ou utilisateur expérimenté, d’obtenir rapidement des réponses à ses questions. De plus, des manuels en ligne, forums, wikis, ainsi que des tutoriels ont été mis en place par la communauté pour aider les utilisateurs. Il existe même une option de jeu d'apprentissage ludique, Vim Adventures[25]. Notes et références
Voir aussiArticles connexes
Bibliographie
Liens externesInformation related to Vim |