734 votes

Différences entre Emacs et Vim

Sans entrer dans un débat religieux sur les raisons pour lesquelles l'un est meilleur que l'autre, quelles sont les raisons pour lesquelles l'un est meilleur que l'autre ? pratique différences entre Emacs et Vim ? Je cherche à apprendre l'un ou l'autre, mais je réalise que la courbe d'apprentissage pour chacun est élevée et je n'arrive pas à me décider. Je n'ai jamais utilisé d'éditeur de ce type (j'ai toujours utilisé des IDE), donc tout ce qui peut aider un débutant est un plus.


Avant qu'une guerre de mots ne commence : Je ne demande pas lequel est le meilleur, je demande les différences entre les deux. Je voudrais une objectif comparaison.

4 votes

Si vous utilisez un Mac (OSX), vous constaterez que de nombreuses commandes emacs de base pour le déplacement du curseur fonctionnent à peu près partout. (Par exemple, elles fonctionnent ici, où je suis en train de taper ce commentaire dans la page web). Ainsi, pour les utilisateurs de Mac, il y a un avantage pour l'ensemble du système à apprendre au moins le sous-ensemble suivant d'emacs : ^A ^B ^D ^E ^F ^K ^L ^N ^O ^P ^T ^V ^Y

2 votes

@JamesAnderson : dans mon expérience, c'est le contraire. J'utilise vim depuis 2 ans et demi, puis je suis passé à emacs. Les gens d'emacs s'en fichent pour la plupart... "tout ce qui fonctionne pour vous". Voici ce que ,salespitch dit dans #emacs <fsbot> We aren't gonna lie. Emacs sucks. Some of us tolerate it, but we can't tell you if YOU'LL be able to. Try it and make up your own mind.

4 votes

Emacs est certainement un excellent système d'exploitation, mais il ne lui manque qu'un éditeur décent.

530voto

James Brooks Points 1186

(le texte ci-dessous est mon opinion, il ne doit pas être pris comme un fait ou une insulte)

Avec Emacs, vous êtes censé l'avoir ouvert 24 heures sur 24, 7 jours sur 7 et vivre dans le programme, presque tout ce que vous faites peut être fait à partir de là. Vous écrivez vos propres extensions, vous l'utilisez pour la prise de notes, l'organisation, les jeux, la programmation, l'accès au shell, l'accès aux fichiers, l'écoute de la musique, la navigation sur Internet. Il faut des semaines et des semaines avant d'en être satisfait et d'apprendre sans cesse de nouvelles choses. Vous serez ennuyé lorsque vous n'y aurez pas accès et vous changerez constamment votre configuration. Vous ne serez pas en mesure d'utiliser facilement les versions d'emacs d'autres personnes et il ne sera pas simplement installé. Il utilise Lisp, ce qui est génial. Vous pouvez en faire ce que vous voulez. (n'importe quoi, du tout)

Avec Vim, il est presque toujours préinstallé. C'est rapide. Vous ouvrez un fichier, vous le modifiez rapidement, puis vous quittez. Vous pouvez travailler avec la configuration de base si vous êtes sur la machine de quelqu'un d'autre. Il n'est pas aussi éditable, mais il est tout de même bien meilleur que la plupart des éditeurs de texte. Il reconnaît que la plupart du temps vous êtes en train de lire/éditer et non de taper et rend cette partie plus rapide. Vous ne souffrez pas de _emacs pinkie_ . Ce n'est pas si exaspérant. C'est plus facile à apprendre.

Même si j'utilise Emacs tous les jours (et que je l'adore), à moins que vous n'ayez l'intention de passer beaucoup de temps dans le programme que vous choisissez, je choisirais vim.

168 votes

Sans l'avoir à disposition : Je suggère de mettre vos .emacs et .emacs.d dans un dépôt de contrôle de source, et ainsi obtenir votre configuration parfaite d'Emacs est simplement une question de checkout.

10 votes

Emacs et vim peuvent tous deux souffrir de ce qui est décrit ci-dessus : tous deux peuvent être configurés au point d'être méconnaissables par rapport à leurs formes vanilles. Aussi, je soutiens l'utilisation d'un vcs.

12 votes

Sur quels systèmes travaillez-vous, @Radu ? Je n'ai jamais vu un système réel dans les années 2010 qui avait de vrais vi au lieu de vim alias à cela.

145voto

Svend Points 3291

Vim n'est pas un shell. Et il ne communique pas bien avec les sous-processus. Ceci est presque par conception, alors que dans Emacs, ces éléments sont inclus par conception. Cela signifie que certaines choses, comme l'intégration d'un débogueur ou d'un interpréteur (ce qui donne une sorte d'IDE), sont difficiles dans Vim.

De plus, les raccourcis Emacs sont principalement accessibles par des modificateurs, et évidemment l'interface Vim est fameusement modale, donnant accès à une quantité absurde de touches directes pour la manipulation.

Emacs était le seul éditeur des deux qui était programmable, et alors que Vim a beaucoup de niveaux bizarres à sa programmabilité, avec l'ajout des liaisons Python et Ruby (et plus, j'ai oublié), Vim est également programmable dans la plupart des façons que vous vous souciez.

J'utilise Vim, et j'en suis assez satisfait.

8 votes

Petite mise à jour : Vim supporte une bien meilleure communication avec les sous-processus depuis la version 8.0 et 8.1 qui a même introduit les tampons terminaux, il se rapproche donc un peu d'emacs à cet égard.

116voto

ldigas Points 19740

Vim :

  • meilleur comme éditeur simple (moins de touches nécessaires pour les tâches simples)
  • communauté de scripteurs plus active - langage interne : vimscript
  • un dépôt central de scripts, de plugins, de schémas de couleurs, ...
  • également extensible en python, ruby
  • peut être rendu portable (emacs a quelques problèmes avec cela)

Emacs :

  • non modale par défaut (la plupart des éditeurs actuels ont adopté cette approche). Bien qu'il existe mode diabolique qui émule le comportement de vim.
  • un langage plus puissant pour l'étendre (elisp est un langage complet, et dans emacs vous pouvez pratiquement tout redéfinir ; alors que dans vim vous ne pouvez pas redéfinir les fonctions intégrées de l'éditeur. D'un autre côté, vimscript est relativement similaire aux langages dynamiques d'aujourd'hui, alors qu'elisp ne ressemble à peu près à rien).
  • plus extensible
  • un excellent support pour les outils GNU (l'ensemble d'entre eux)

Personnellement, je préfère vim - il est petit, fait ce qu'il est censé faire, et quand je souhaite un IDE complet, j'ouvre VS. L'approche d'Emacs qui consiste à être un éditeur qui veut être un IDE (ou devrais-je dire, un OS), mais qui ne l'est pas tout à fait, est, à mon avis, dépassée. Dans le passé, avoir un client de messagerie, un client ftp, tetris, ... et tout le reste dans un seul paquet (Emacs) avait un certain sens ... aujourd'hui, ce n'est plus le cas.

Les deux sont cependant un sujet de discussions religieuses parmi les utilisateurs de la communauté des programmeurs et des super-utilisateurs, et à cet égard, les deux sont excellents pour déclencher des guerres de mots si on les met en contact (dans la même phrase / question).

48 votes

"meilleur en tant qu'éditeur" est assez vague. Je serais intéressé de voir les raisons.

43 votes

Allen - Qu'y a-t-il de vague là-dedans ? Je rencontre rarement des utilisateurs de vim et d'emacs qui ont un problème avec cette affirmation. Même les utilisateurs hardcore d'emacs l'acceptent généralement comme un fait. Avez-vous utilisé les deux éditeurs ? Je pense qu'il est relativement évident que vim a un avantage dans l'aspect des fonctionnalités d'édition de texte.

39 votes

Je suis incrédule que quiconque puisse accepter cela comme un fait. En tant qu'utilisateur de longue date d'emacs et de VI, j'ai utilisé vim quelques fois - mais "meilleur comme éditeur" doit aller à emacs dans mon esprit, si ce n'est pour une sélection beaucoup plus large de modes majeurs et mineurs pour vous aider à taper.

56voto

Senthil Kumaran Points 14934

Si vous cherchez une analyse objective des deux éditeurs, examinez leurs origines et la philosophie qui sous-tend leurs conceptions respectives. Réfléchissez à celui qui vous conviendrait le mieux et apprenez-le (et apprenez-le et apprenez-le, car il faut du temps avant de découvrir sa véritable utilité par rapport à n'importe quel IDE). Une introduction à l'édition de l'affichage avec Vi a été écrit par Bill Joy et Mark Horton et il explique pourquoi il a choisi la conception modale et la raison d'être des différentes frappes de touches ( cela m'aide à me rappeler que CTRL-W +W (passe à la touche suivante). W et il en sera de même pour CTRL W+ CTRL W, au cas où vous auriez maintenu la touche CTRL pendant une durée plus longue.

Voici un lien vers Chronologie d'Emacs et a la référence au papier Multics Emacs. Voici le document de RMS sur Emacs Je constate que l'accent est mis sur les éditeurs de texte programmables (même en 1981 et avant).

Je n'ai pas lu les articles sur emacs, mais j'ai lu plusieurs fois l'article sur vi de Bill Joy. Les deux sont vieux, mais vous aurez quand même la philosophie et vous pourrez choisir d'utiliser l'outil actuel (vim 7.x ou emacs 25 ?).

Editar: J'ai oublié de mentionner qu'il faut de la patience et de l'imagination pour lire ces deux journaux, car on remonte dans le temps en les lisant. Mais cela en vaut la peine.

45voto

Yawar Points 2393
  1. Vim a toujours été plus rapide à démarrer qu'Emacs. Je dis que sur n'importe quelle machine, les installations prêtes à l'emploi de Vim démarreront plus rapidement que les installations prêtes à l'emploi d'Emacs. Et j'ai tendance à penser qu'après une quantité modérée de personnalisation de l'un ou l'autre, Vim démarrera toujours plus vite qu'Emacs.

  2. Après cela, l'autre différence pratique était les modes d'Emacs. Ils vous facilitent énormément la vie lors de l'édition de XML, C/C++/Java/quelque chose, LaTeX, et la plupart des langages populaires auxquels vous pouvez penser. Ils vous donnent envie de garder l'éditeur ouvert pendant de longues sessions et de travailler.

Dans l'ensemble, je dirai que Vim vous attire vers lui pour des tâches d'édition courtes et rapides, tandis qu'Emacs vous incite à vous plonger dedans pour de longues sessions.

1 votes

Je ne pense pas que les modes rendent la vie plus facile, au contraire. Et Larry Tesler pense la même chose .

2 votes

Comment les modes d'Emacs aident-ils à coder ? (Je suis novice en la matière...)

4 votes

Il y a longtemps, je suis passé de vi à emacs pour quatre raisons : (a) un clic pour arriver à la prochaine erreur de compilation, (b) l'intégration de gdb, (c) grep et find-grep. Est-il possible de faire ces choses dans vim maintenant ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X