Emacs et Vim sont les deux éditeurs de texte les plus largement utilisés sur les systèmes Unix et analogues. Il existe une longue histoire de concurrence entre ces deux éditeurs de texte, beaucoup plus avancés que d’autres éditeurs de texte sur la plate-forme Unix. Bien que les deux éditeurs présentent des fonctionnalités similaires via leurs plugins, scripts et touches de raccourci, leurs approches sont légèrement différentes..
Emacs | Vim | |
---|---|---|
Version préliminaire | 23 | 7.2a.13 (2008-07-04) |
Écrit en | C et Emacs Lisp | Script C et Vim |
Plate-forme | Multiplateforme, y compris Unix, Linux et Microsoft Windows | Multiplateforme, y compris Unix, Linux et Microsoft Windows |
Disponible en | Anglais, chinois, français, italien, polonais, russe | Anglais, chinois, français, italien, polonais, russe |
Type | Éditeur de texte | Éditeur de texte |
Licence | GNU GPL | Logiciel libre, logiciel de bienfaisance, compatible GPL |
Site Internet | http://www.gnu.org/software/emacs/ | http://www.vim.org/ |
Introduction (de Wikipedia) | Emacs est une classe d'éditeurs de texte riches en fonctionnalités, généralement caractérisés par leur extensibilité. Emacs a plus de 1000 commandes d'édition. Il permet également à l'utilisateur de combiner ces commandes dans des macros pour automatiser le travail.. | Vim est un éditeur de texte publié par Bram Moolenaar pour la première fois en 1991 sur Amiga. Le nom "Vim" est un acronyme pour "Vi IMproved", car Vim a été créé en tant que version étendue de l'éditeur vi, avec de nombreuses fonctionnalités supplémentaires conçues pour être utiles. |
Concu par | Richard Stallman | Bram Moolenaar |
Première version | 1976 | 1991 |
Version stable | 22.3 (2008-09-05) | 7.2 (2008-08-09) |
Onglets de tampon | Pris en charge à la fois en ligne de commande et dans l'interface graphique | Pris en charge à la fois en ligne de commande et dans l'interface graphique |
Vim utilise les modes d’édition - le plus souvent la mode de commande et mode d'insertion. Vim vise à minimiser le nombre de frappes sur lesquelles l'utilisateur doit appuyer, car vi, sur lequel Vim est basé, a été conçu pour être utilisé sur des terminaux lents..
Emacs utilise des touches de modification pour activer les raccourcis, ce qui implique souvent d'appuyer simultanément sur plusieurs touches pour une même fonction. Cet aspect d'Emacs est souvent critiqué.
Emacs est plus facile à apprendre car il possède une interface plus naturelle (pour les utilisateurs familiarisés avec les éditeurs de texte basés sur une interface graphique). Puisque Vim a différents modes d’édition, les débutants ont un peu plus de mal à apprendre..
Les amateurs de Vim soutiennent qu’une fois que l’utilisateur se familiarise avec les modes d’édition et les commandes de Vim, cela permet une productivité et une efficacité bien supérieures. L'édition de fichier est généralement plus rapide avec Vim qu'avec Emacs en raison de l'interface de Vim volontairement pilotée par la vitesse. Par exemple, le mouvement du curseur peut être contrôlé via le H, J, K, et L clés dans le mode normal. Cela signifie que les mains de l'utilisateur ne doivent pas quitter la position "rangée de base", ce qui améliore l'efficacité, mais alourdissent les coûts. En effet, il faut changer de mode pour pouvoir choisir entre le mouvement et l'édition de texte. Dans Emacs (avec la configuration par défaut), l’utilisateur déplace le curseur avec les raccourcis Ctrl-B ou Ctrl-F, ce qui peut ralentir l’utilisateur novice car il faut appuyer sur deux touches. Les améliorations en termes de productivité et d’efficacité dans Emacs dépendent de la configuration de l’environnement d’édition plutôt que de l’éditeur lui-même..
Vim est plus léger qu’Emacs et utilise moins de mémoire. Les avocats de Vim critiquent la consommation de ressources d’Emacs en suggérant avec insolence qu’Emacs signifie «Quatre-vingt mégaoctets et l’échange constant»..
Cependant, avec gnuclient, un seul processus Emacs persistant peut être exécuté et prendre en charge plusieurs clients simultanément. Cela accélère le temps de démarrage et diminue l'utilisation totale de la mémoire, ce qui réduit l'écart entre Emacs et Vim..
Tandis que Vim et Emacs supportent tous deux des plugins qui améliorent leurs fonctionnalités, Emacs supporte beaucoup plus de personnalisation de l'environnement de l'éditeur. C’est sans doute la caractéristique la plus importante d’Emacs et elle est à l’origine de la plupart de ses efforts.
Emacs peut être étendu dans elisp, alors que Vim a son propre langage de script interne et supporte l’utilisation d’autres langages de programmation pour le développement de plugins..
Emacs peut être étendu à la volée en redéfinissant les fonctions elisp intégrées, soit en tapant la nouvelle définition dans Emacs, soit en chargeant des fichiers elisp. Les groupes de modifications associées sont appelés "modes" et peuvent être facilement configurés pour être automatiquement utilisés pour des types de fichiers particuliers (mémoires tampons). Il est donc facile de définir des modes pour différents langages de programmation ou frameworks tels que "mode lisp" ou "mode Ruby on Rails" ou "mode PHP". Ces modes peuvent directement modifier même les comportements centraux d’Emacs, formater ou coloriser automatiquement le texte et ajouter un modèle standard ou du texte "passe-partout", tels que des déclarations de fonctions et des fermetures. Les programmeurs trouvent donc que Emacs est bien plus personnalisable que Vim en fonction de leurs besoins. Cependant, certains programmeurs peuvent juger que Vim est mieux adapté à leur environnement de programmation en raison de son fonctionnement tout aussi modulable et entièrement modal..
Vim peut également être étendu à la volée en utilisant le mode de commande. Le mode de commande permet de définir les options de configuration, les fonctions et les macros. En fait, les fichiers de configuration pour Vim ne sont que des commandes qui peuvent être entrées via le mode commande.
Vim et Emacs ont tous deux des interfaces utilisateur graphiques. Pratiquement tous les éléments de menu de l'interface graphique pour les deux éditeurs sont simplement des moyens de gérer une commande de raccourci ou une configuration rapide. Les interfaces graphiques des éditeurs ne fournissent pratiquement aucune fonction supplémentaire à celles disponibles dans la CLI (interface de ligne de commande).
Emacs utilise XDisplay ou gtk2 pour son interface graphique. Vim peut utiliser de nombreuses autres bibliothèques d'interface graphique, telles que gtk, gnome, gnome2, motif, athena et neXtaw, en plus de gtk2..