# Guerre d'éditeurs de texte

Il existe une tradition datant du début des années 1970 (et donc dès les débuts du travail courant sur écran d'ordinateur) chez les programmeurs, qui consiste à défendre son logiciel éditeur de texte favori avec une passion qui n'est pas sans rappeler à certains celle du fanatisme religieux. De nombreuses flamewars se sont déroulées entre des groupes qui s'insultaient les uns les autres en soutenant que l'éditeur de texte de leur choix était l'outil parfait pour l'édition.

## Emacs contre vi

Les guerres d'éditeurs éclatent habituellement entre les inconditionnels d'Emacs et ceux de vi, les deux éditeurs de texte les plus populaires sur les systèmes UNIX. Existants depuis près de 40 ans et étant tous les deux très populaires, un grand nombre d'utilisateurs et programmeurs UNIX utilisent ou ont utilisé l'un de ces deux logiciels, et parfois les deux. Les dernières enquêtes montrent cependant que ces deux logiciels historiques perdent du terrain en termes de popularité face à de nouveaux outils de développement tels que Visual Studio Code.
Il arrive fréquemment qu'à un moment de la discussion, quelqu'un avance qu'ed est l'éditeur de texte standard. Cette boutade est également reprise par la Free Software Foundation.
Cette rivalité entre les deux éditeurs est prise au sérieux par certains, et tournée en dérision par d'autres. Richard Stallman, par exemple, a inventé toute une phraséologie autour d'Emacs, parodiant une religion dont le but serait de célébrer cet éditeur et de décourager les utilisateurs de vi. Il s'est ainsi autoproclamé Saint IGNUcius, un saint de l'Église Emacs. Emacs dispose d'ailleurs de son propre groupe de discussion sur l'arborescence alt.religion : news:alt.religion.emacs.
De leur côté, les adeptes de vi ont créé le Culte de Vi, que certains utilisateurs d'Emacs appellent « clairement une misérable tentative pour singer leurs maîtres ».

### Avantages allégués d'Emacs

* Emacs n'est pas qu'un éditeur de texte, c'est un environnement de développement complet.
* Le langage de script d'Emacs est une variante de LISP et de nombreux plugins sont disponibles comme le client de courrier électronique et lecteur de nouvelles Gnus ou Org-mode le système d'organisation de notes et de Programmation lettrée.
* Emacs inclut vi, sous forme du viper-mode et de l'EVIL-mode (mais Emacs n'inclut pas Vim, un clone amélioré de vi) (à noter que les raccourcis clavier de vi et vim sont extrêmement similaires).
* Emacs ne nécessite pas de va-et-vient entre les modes « commande » et « insertion ».
* Pour le néophyte, le fonctionnement est naturel : chaque pression d'une touche du clavier affiche le caractère correspondant à l'écran.

### Avantages allégués de vi

* Vi n'est pas qu'un éditeur de texte, c'est un environnement de développement complet une fois les bons plugin ajoutés.
* Les commandes de vi nécessitent rarement l'utilisation des touches de modification, comme Ctrl ou Alt. Certains utilisateurs trouvent que cela réduit les troubles musculosquelettiques (comme le syndrome du canal carpien).
* Les raccourcis clavier de vi ont une syntaxe de la forme nombre-verbe-sujet, qui permet d'apprendre plus facilement beaucoup de commandes, grâce au fait qu'apprendre un nouveau verbe permet de l'utiliser avec tous les sujets que l'on connaît déjà
* Vi est plus léger et plus rapide qu'Emacs.
* La présence de vi est garantie par les standards POSIX.
* Vim, un éditeur populaire basé sur Vi est scriptable dans des langages courants tels que Perl, Python et Ruby.
* Vi fonctionne mieux avec les terminaux passifs. Bien que ce ne soit pas aussi important qu'auparavant, cela peut être essentiel, par exemple quand les défaillances du système ont atteint un point où l'environnement graphique ne peut pas démarrer et que l'on dispose d'un environnement console très limité.
* Les combinaisons de touches d'Emacs entrent en conflit avec certaines implémentations de telnet.
* L'utilisation des fonctionnalités avancées nécessite généralement moins d'effort de configuration dans Vi que dans emacs.

### Expressions humoristiques

* L'utilisation d'une implémentation libre de vi n'est pas un péché, mais une pénitence. (Richard Stallman)
* Emacs est un très bon système d'exploitation auquel il ne manque qu'un bon éditeur de texte.
* Vim est un éditeur ; il ne cherche pas à inclure « tout sauf l'évier de la cuisine » mais vous pouvez nettoyer le vôtre avec Vim.
* « VI VI VI, le chiffre de la bête ! » disent les emacsiens de l'Église de Emacs.
* Emacs - Esc-Méta-Alt-Control-Shift. (auparavant Eight Megabytes And Constantly Swapping, « Huit mégaoctets et échange mémoire constant » du temps où cette taille mémoire était considérée comme élevée).
* « Emacs Makes A Computer Slow » (« Emacs ralentit l'ordinateur »), sous forme d'acronyme récursif
* Emacs : Emmerdement à caractère systématique.
* C'est comme ZZ dans VI.
* Vi a 2 modes « faire des bips » et « tout casser ».
* Vi est très simple à apprendre. La seule combinaison de touches à connaître est « : q ! (entrée) » (commande pour en sortir).

## Éditeurs pour mainframes

Les guerres d'éditeurs n'ont pas épargné les mainframes, et c'est même sur ces derniers qu'elles ont commencé. Si dans le monde du full-screen un consensus de présentation a été rapidement adopté menant à des éditeurs cousins comme EDGAR (EDiting Graphically And Recursively, le pionnier), XEDIT (Xavier's EDITor, sous VM/CMS) et l'éditeur d'ISPF (sous MVS/TSO), une bataille a fait rage pendant dix ans concernant les commandes UP et DOWN sur chaque éditeur : UP devait-il faire monter le pointeur dans le texte, ou au contraire faire monter le texte sur l'écran ? Une remarque finit par privilégier l'un des points de vue : puisque dans tous les éditeurs, TOP plaçait au début du texte et BOTTOM à la fin, était-il plus logique que UP rapproche de TOP ou de BOTTOM ? La réponse devenait dès lors évidente et tous les éditeurs de mainframes IBM s'alignèrent alors sur ce choix.
Les éditeurs pour mainframes étaient conceptuellement très différents des éditeurs interactifs, car il n'était pas question dans le premier contexte de solliciter l'unité centrale à chaque touche pressée. Il fallait se contenter des possibilités d'interaction locales - assez riches toutefois - de l'unité de contrôle associée à l'écran. Pour cette raison, il était aussi difficile de passer de Vi à XEDIT que de XEDIT à Vi, ce qui créa une nouvelle guerre d'éditeurs entre éditeurs mainframes et éditeurs totalement interactifs. Des clones d'XEDIT furent créées pour le contexte interactif, par exemple GEDIT ou The Hessling Editor. Il était en revanche structurellement impossible de porter Vi sur mainframe, sauf à le programmer dans le langage de l'unité de contrôle elle-même : les outils pour le faire n'étaient pas disponibles, et la mémoire de ces unités de contrôle de toute façon trop petite pour y porter tout Vi, a fortiori EMACS.
Depuis lors la situation a changé : Linux (y compris Emacs et Vim) a été porté (en) sur System z et la « guerre » entre ces deux éditeurs peut se poursuivre sur ces mainframes.
Note : un éditeur nommé xedit fait partie des samples livrés avec X Window. Il n'a pas de rapport avec XEDIT.