Nous vivons une ère de rivalités. Regardez autour de vous et vous verrez des guerres saintes partout : iOS contre Android, Apple contre Samsung, MCU contre DC, la liste est longue. L’une des plus anciennes guerres saintes est probablement la « guerre des éditeurs » entre les utilisateurs de Vim et d’Emacs. Cette guerre des éditeurs dure depuis des décennies et sème la confusion au sein de la communauté des logiciels et des utilisateurs de Linux. Vim et Emacs sont sans aucun doute les deux éditeurs les plus populaires pour le code Puppet sur les machines Unix. Ce sont tous deux de très bons éditeurs de texte, très efficaces, utilisés par la plupart des utilisateurs de Linux et des programmeurs chevronnés. Jetons un coup d’œil sur les principales différences entre les deux.
Qu’est-ce que Vim ?
Vim est une version améliorée de l’éditeur de texte vi utilisé sur les systèmes Unix. Abréviation de « visual editor », vi est l’éditeur de texte standard que l’on trouve dans presque tous les systèmes Unix et c’est l’éditeur de texte Linux le plus populaire. Il existe depuis les premiers jours d’Unix. Vim est un éditeur de texte orienté écran, de type vi, conçu pour permettre une édition de texte efficace. Souvent appelé « éditeur de programmeur », Vim utilise des opérations simples, basées sur le curseur, pour donner un format plein écran. La première version de Vim a été rendue publique par Bram Moolenaar en 1991. Depuis, il est devenu l’un des éditeurs les plus populaires et les plus riches en fonctionnalités. En 1998, la cinquième génération de Vim a été publiée et avec elle, l’une des fonctionnalités les plus utilisées de l’éditeur, le scripting, a également été introduite. Il est désormais possible d’écrire ses propres scripts pour Vim, ce qui permet d’étendre ses fonctionnalités.
Qu’est-ce qu’Emacs ?
Emacs est une famille d’éditeurs de texte en temps réel, hautement personnalisables et auto-documentés, conçus pour les systèmes d’exploitation POSIX et disponibles sous Linux, macOS, BSD, Windows et autres. La plupart des utilisateurs disent qu’Emacs n’est pas vraiment un éditeur ; en fait, c’est un système LISP (List Processor) très extensible qui permet l’édition de texte. Emacs est conçu pour le développement de programmes et permet de formater le code source en fonction de la programmation utilisée. C’est l’un des éditeurs de texte les plus populaires sous Linux, qui fait également office de client de courrier électronique, d’environnement de développement intégré, de navigateur de documents, etc. La version GNU d’Emacs, créée par Richard Stallman, fondateur du projet GNU, comprend un client de messagerie, ainsi que d’autres composants, tels qu’un lecteur de nouvelles et un éditeur. À l’origine, Emacs a été écrit sous la forme d’une série de commandes d’extension ou MACroS pour l’éditeur de texte TECO de la fin des années 1960.
Différence entre Vim et Emacs
Éditeur
– Vim est un éditeur de texte doté de trois modes importants : insertion, normal et visuel. Vim démarre en mode « normal » par défaut et est utilisé pour contrôler la session d’édition. En mode insertion, vos frappes font partie du document. Le mode visuel est utilisé pour sélectionner du texte. Vous pouvez créer et éditer vos documents en passant d’un mode à l’autre. Emacs est également un éditeur d’écran, mais il est bien plus qu’un simple éditeur de texte. Il s’agit d’un système LISP (List Processor) très extensible qui permet l’édition de texte. Il fait également office de client de courrier électronique, d’environnement de développement intégré, de navigateur de documents, etc.
Facilité d’utilisation
– Vim est extrêmement léger et rapide à charger. Il s’agit d’un éditeur de texte rapide, facilement disponible et extrêmement polyvalent, qui est préinstallé sur presque tous les systèmes d’exploitation basés sur Unix, y compris la plupart des distributions Linux. Il est meilleur que la plupart des éditeurs de texte existants. Tout ce que vous avez à faire, c’est d’apprendre à taper sur les touches et c’est parti. Emacs est disponible sur pratiquement tous les principaux systèmes d’exploitation, de Linux à macOS, BSD, Windows et bien d’autres encore. Cependant, il n’est pas préinstallé et très peu de distributions Linux sont livrées avec Emacs prêt à l’emploi. Avec Emacs, vous pouvez faire à peu près tout ce que vous voulez : éditer des textes, prendre des notes, éditer des vidéos, accéder au shell, écouter de la musique, naviguer sur le web, etc.
Personnalisation
– Vim est plus optimisé pour la répétition. Il est très efficace car il suit vos actions les plus récentes et vous pouvez facilement répéter la dernière modification en appuyant sur une seule touche. Mais bien sûr, vous devez apprendre à créer vos actions. Comme Vim, Emacs dispose d’un ensemble riche et étendu de commandes pour modifier le texte. Mais avec Emacs, vous pouvez personnaliser les commandes à tout moment et vous pouvez également modifier les paramètres, dont la plupart sont des variables personnalisables. Il s’agit essentiellement d’un environnement d’exécution pour le langage de programmation LISP, qui est complet pour Touring, ce qui rend les capacités d’Emacs virtuellement illimitées.
Langue
– Le cœur de Vim est écrit en C et son interface utilisateur est basée sur le vi de Bill Joy, vieux de plusieurs années, mais avec de nombreuses nouvelles fonctionnalités. Cependant, les plug-ins pour Vim sont écrits dans un langage appelé VimScript, qui est une interface intégrée permettant aux développeurs d’améliorer les capacités de Vim. Emacs, quant à lui, est écrit dans un sous-ensemble de Lisp appelé ELisp (le dialecte utilisé dans GNU Emacs), ce qui signifie que vous serez en mesure de personnaliser chaque petit détail de l’éditeur. Lisp a une syntaxe très minimale et régulière. Vous pouvez configurer l’interface graphique jusqu’à un niveau très granulaire, y compris l’interface elle-même.
Résumé
Comme Vim, Emacs est également un éditeur de texte qui peut être exécuté avec une interface graphique, mais il est bien plus qu’un simple éditeur de texte. En effet, Emacs fait également office de client de courrier électronique, d’environnement de développement intégré, de navigateur de documents, etc. Contrairement à Vim, Emacs vous permet d’utiliser le langage de programmation Lisp pour écrire de nouvelles commandes ou remplacer les anciennes. Cette caractéristique s’appelle l’extensibilité en ligne. Emacs est également hautement personnalisable, ce qui signifie que vous pouvez personnaliser chaque détail jusqu’à un niveau très granulaire, ce qui rend ses capacités virtuellement illimitées. Cependant, Vim reste l’un des éditeurs de texte les plus populaires et les plus utilisés, que l’on trouve dans presque tous les systèmes Unix.