Quels sont les avantages et les inconvénients de Vim et Emacs?

372

Comment compareriez-vous ces éditeurs? Quels sont les avantages et les inconvénients de chacun?

[ note ] Cela ne vise pas à répondre à ceux qui "détestent et aiment les autres" ou à ceux qui n'ont pas utilisé les deux.

John Berryman
la source
1
M-! emacs RETC'est comme une recherche google pour "google"
Seamus
11
Duplicata de la question SO: stackoverflow.com/questions/1430164/… de ubuntu askubuntu.com/questions/804/… et des programmeurs programmers.stackexchange.com/questions/1271/… Il faut aimer la prolifération ici.
Trey Jackson
27
Je suis surpris que personne n'ait mentionné XKCD 378 .
tedder42
9
Remarquez que ces questions ne demandent jamais une comparaison avec Ed, le seul véritable éditeur WYGIWYG!
Mark K Cowan
4
@ tedder42 Alors vous pourriez aussi bien dire "Mel" ...
Tobias Kienzler

Réponses:

420

J'utilise les deux, bien que si je devais en choisir un, je sais lequel je choisirais. Néanmoins, je vais essayer de faire une comparaison objective sur quelques points.

  • Disponible partout? Si vous êtes un administrateur système professionnel travaillant avec des systèmes Unix ou un utilisateur expérimenté sur des périphériques intégrés (routeurs, smartphones avec Busybox,…), vous devez savoir que vi (et non Vim), car il est disponible sur tous les systèmes Unix et la plupart des systèmes. Systèmes de type Unix, qu'ils soient de bureau, serveur ou intégrés. Pour un utilisateur ordinaire, cet argument est sans importance: Emacs est facilement disponible pour tout système d'exploitation de bureau / serveur et, puisqu'il prend en charge l'édition à distance, il suffit de l'avoir de toute façon sur votre ordinateur de bureau.

  • Gonflé? Emacs a déjà défendu avec humour «Huit mégaoctets et échanges constants». Pour le moment, sur ma machine, Google Chrome nécessite environ autant de RAM que Emacs pour 100 fichiers ouverts, et je ne mentionnerai même pas Firefox. Au 21ème siècle, le ballonnement Emacs n'est qu'un mythe.

    Le gonflement des fonctionnalités n'est pas un problème non plus. Si vous ne l'utilisez pas, vous n'avez pas à savoir que c'est là. Les fonctionnalités d'Emacs restent à l'écart lorsque vous ne les utilisez pas et que la documentation est très bien organisée.

  • Heure de démarrage : les promoteurs de Vi (m) se plaignent du temps de démarrage d'Emacs. Oui, Emacs est lent à démarrer, mais ce n'est pas grave: vous démarrez Emacs une fois par session, puis vous vous connectez au processus en cours d'exécution avec emacsclient. Le démarrage lent d'Emacs est donc principalement un mythe.

    Il existe une exception, lorsque vous vous connectez à un ordinateur distant et souhaitez modifier un fichier à cet endroit. Démarrer un Emacs distant est (généralement) plus lent que de démarrer un Vim distant. Dans certaines situations, vous pouvez garder un Emacs en cours d'exécution à l'intérieur de l'écran. Vous pouvez également éditer des fichiers distants depuis Emacs, mais cela interrompt le flux si vous êtes dans une session SSH dans un terminal. (Depuis XEmacs 21 ou GNU Emacs 23, vous pouvez ouvrir une fenêtre Emacs à partir d’une instance X en cours d’exécution dans un terminal.)

    En tournant les tables, j'ai observé que Vim prenait beaucoup plus de temps à charger qu'Emacs ( vim -u /dev/nullvs emacs -q). Certes, c'était sur une plate-forme étrange (Cygwin).

  • Courbe d'apprentissage initiale: Cela varie d'une personne à l'autre. Le graphique de Michael Mrozek m'a fait rire. Sérieusement, je suis d’accord pour dire que la courbe d’apprentissage de Vim commence raide, bien plus que n’importe quel autre éditeur, même si cela peut être atténué en utilisant gvim.

    Depuis que j'ai dissipé quelques mythes Emacs, laissez-moi dissiper un mythe vi: un éditeur de modal n’est ni difficile ni douloureux à utiliser. Cela prend un peu d’habitude, mais au bout d’un moment, cela semble très naturel. Si je devais repenser vi (m), je garderais certainement les modes.

  • Courbe d'apprentissage asymptotique: Vim et Emacs ont tous deux de nombreuses fonctionnalités et vous continuerez à en découvrir de nouvelles après des années d'utilisation.

  • Productivité : C'est un sujet extrêmement difficile. Les partisans de vi (m) soutiennent que vous pouvez pratiquement tout faire sans quitter la ligne d'arrivée, ce qui vous rend plus efficace lorsque vous en avez le plus besoin. Les partisans d'Emacs rétorquent qu'Emacs a beaucoup de commandes qui ne sont pas fréquemment utilisées, ne justifiez donc pas une liaison de clé, mais sont extrêmement pratiques lorsque vous en avez besoin ( référence xkcd obligatoire ).
    Mon opinion personnelle est qu'Emacs gagne en fin de compte sauf si vous avez un handicap de frappe (et même dans ce cas, vous pouvez configurer Emacs de manière à n'exiger que des séquences de touches et non des combinaisons comme Ctrl+ lettre). Les clés de la ligne de départ sont bien, mais souvent, elles ne sont pas gagnantes car vous devez changer de mode. Je ne pense pas que Vim puisse faire quelque chose de manière significative plus efficacement que Emacs, alors que l'inverse est vrai.

  • Personnalisabilité : les deux éditeurs sont programmables et un vaste ensemble de packages est disponible pour les deux. Cependant, Vim est un éditeur avec un langage macro; Emacs est un éditeur écrit en Lisp avec quelques primitives ad-hoc. Emacs gagne de façon spectaculaire lorsque vous essayez de faire quelque chose auquel les auteurs ne pensaient tout simplement pas. Cela n'arrive pas tous les jours, mais cela s'accumule au fil des ans.

  • Plus qu'un éditeur : Vim est un éditeur. Emacs n’est pas seulement un éditeur: c’est aussi un IDE, un gestionnaire de fichiers, un émulateur de terminal, un navigateur Web, un client de messagerie, un client de presse, ... Que ce soit une bonne ou une mauvaise chose doit être débattu. Mais vous pouvez utiliser Emacs en tant que simple éditeur (voir «Fonctionnalité bouffée» ci-dessus).

  • En tant qu'IDE : Vim et Emacs prennent en charge de nombreux langages de programmation et autres formats de texte. Au-delà des bases telles que la coloration syntaxique et l'indentation automatique, les deux disposent de fonctionnalités IDE avancées telles que la recherche de références croisées de code et de documentation, les insertions assistées et le refactoring, le contrôle de version intégré et la possibilité de lancer une compilation et de passer à la première erreur.

    Un domaine où Emacs est nettement meilleur que Vim est l’interaction avec des sous-processus asynchrones . C'est à ce moment-là que vous démarrez une longue compilation et que vous voulez faire autre chose dans la même instance de l'éditeur pendant que le compilateur tourne. Ou lorsque vous souhaitez interagir avec une boucle d'impression Read-eval - Emacs brille vraiment à cet égard, Vim n'a à offrir que des astuces maladroites. Néanmoins, une nouvelle fourchette de vim, Neovim s’est avérée avoir résolu ce problème et mis en œuvre divers correctifs non corrigés dans Stock vim.

Gilles
la source
34
Je ne peux pas accepter le point "Plus qu'un éditeur". Vim a également de nombreux plugins, y compris ceux qui en font un gestionnaire de fichiers ou un IDE (comme vim-latex).
rozcietrzewiacz
7
Cela m'a fait me sentir petite ...
gnometorule
10
@rozcietrzewiacz: Oui, mais pouvez-vous naviguer sur le Web dans Vim? Lire le courrier électronique? Vérifiez votre flux RSS? Je ne pense pas que vous puissiez nier qu'Emacs est tout simplement plus puissant, bien que l'utilité de ce pouvoir dépende de ce que vous recherchez.
musicfreak
3
@Bananguin Emacs est meilleur dans tout ce qui implique d'interagir avec un REPL . Par exemple, Proof general est très agréable (bien entendu, il s'agit d'un domaine d'application très étroit). Emacs est doué pour faire des choses auxquelles personne ne pensait auparavant: Emacs Lisp est bien plus beau que le langage macro de Vim. Emacs a tendance à avoir un meilleur support pour l'indentation du code source, mais je ne pense pas que ce soit un défaut de Vim mais un manque de bibliothèques (le support de Vim a tendance à se limiter à la coloration syntaxique).
Gilles
5
@ MichaelHampton Vous devez être jeune alors. En 1985, c'était huit mégaoctets . A présent, je suppose que cela devrait être de huit mille mégaoctets, sauf que personne ne remarque l'utilisation de la mémoire par Emacs puisqu'il s'agit de moins d'un onglet de navigateur.
Gilles
267

Je vais poster ce que je pense sont les principaux avantages de chacun:


Emacs a beaucoup plus d'extensions pour vous permettre de faire des tâches qui ne sont que vaguement liées à l'éditeur de texte, comme parcourir le système de fichiers ou jouer avec le contrôle de version, et des extensions qui n'ont aucun rapport avec l'éditeur de texte, comme la lecture de flux RSS. Si vous voulez un environnement plutôt qu'un éditeur de texte, Emacs sera meilleur que Vim. Je pense aussi qu’Emacs est beaucoup plus facile à apprendre, malgré ce que certains voudraient vous faire croire:

Editeur courbe d'apprentissage

En particulier, je pense qu'un utilisateur novice d'Emacs sera plus rapide qu'un utilisateur novice de Vim


D'autre part, Vim est indéniablement plus rapide. Il semble que ce soit une partie essentielle de l’argumentation, mais à mon avis il n’ya pas de contestation du tout; Je me considère comme un utilisateur courant d’Emacs et je ne suis pas à la hauteur des couples de personnes que je connais qui connaissent aussi bien Vim. Le problème, c'est que le nombre de personnes qui maîtrisent suffisamment Vim pour être aussi rapide est incroyablement petit (sur les 30 personnes avec lesquelles je parle régulièrement qui utilisent Vim, je pense qu'une seule est exceptionnellement douée pour cela). Il existe un grand écart entre le gain de vitesse possible et le gain de vitesse réel que vous réalisez; Les utilisateurs d'Emacs seront presque aussi rapides que 99% des utilisateurs de Vim, et (comme je l'ai dit dans la section Emacs) les utilisateurs débutants d'Emacs seront probablement plus rapides que les utilisateurs débutants de Vim

Michael Mrozek
la source
8
euh ... je sais que vim a plus d'un plugin de contrôle de version. et un de ces plugins supporte tous les systèmes populaires ... si emacs en a plus ... combien avez-vous besoin de faire la même chose?
xenoterracide
13
@xeno Je ne sais pas ce que vim a comme plugins, alors peut-être que VCS était un mauvais exemple, mais je suis très confiant. Emacs a bien plus de plugins que vim, car vim ne souscrit pas à la philosophie "un programme fait tout"
Michael Mrozek
4
Quelqu'un pourrait-il expliquer ce que signifie le graphique emacs, indiqué ci-dessus? Comment l'interpréter?
Andrew-Dufresne
27
C'est une blague "au fond du trou du lapin" ... C'est parce que lorsque vous apprenez à utiliser emacs, vous commencez à en créer aussi. (Depuis qu'Emacs est vraiment juste une très grande collection de macros / routines d'édition écrits dans son interpréteur Lisp.)
octobre
15
+1 votre vitesse par rapport à votre expérience est bonne, mais peut-être que 99% est un peu extrême. Je veux dire que vim n'est pas "ce" difficile à maîtriser, cela ne prend que quelques années;)
Johan
81

Il y en a un vidisponible sur tous les systèmes Unix (ou presque), mais vous ne pouvez pas en dire autant d'un autre éditeur. C'est la raison n ° 1 d'apprendre et de vous familiariser avec vi(veuillez noter 'vi' pas 'vim'). Je n'ai jamais vu Emacs être disponible dans une installation par défaut.

Je ne dis pas que n'utilisez pas Emacs ou que c'est la seule raison d'utiliser Vim, mais lorsque vous voulez pouvoir utiliser des systèmes Unix qui ne vous appartiennent pas ... vifait partie du langage universel.

xénoterracide
la source
1
Je suis assez vimutilisateur, mais j'ai souvent du mal à l'utiliser vi, probablement à cause de la touche END (vim la prend en charge, mais vi ne le fait pas, ou du moins ne le fait pas par défaut)
phunehehe
25
@phunehehe Si j'essaie d'utiliser, nanoje me retrouve avec tout un tas d'ijkloOah dans mon dossier ... jusqu'à ce que je réalise que je ne peux pas les utiliser pour la navigation. Je n'utilise pas les touches fléchées pour naviguer.
xenoterracide
5
Cela va doubler pour la connexion à des serveurs lents via des connexions douteuses: le seul éditeur qui leur est garanti (c’est dans la spécification Unix, je pense?) Est vi, et le mode commande de vi facilite beaucoup la modification de fichiers en moins de frappes au clavier. lorsque chaque frappe prend plusieurs secondes pour apparaître sur votre écran. Bien sûr, l'étape n ° 1 consiste généralement à installer vim:)
Gaurav
12
@phunehehe je n'utilise pas esc. J'utilise ctrl + [il fait la même chose;)
xenoterracide
8
+1 pour le commentaire de Gaurav. Vi fonctionne parfaitement pour l'édition en urgence de fichiers de configuration via une connexion 3G de mauvaise qualité sur un téléphone portable lent.
LawrenceC
23

Je pense qu'ils sont tous les deux géniaux. Je pense que l’un ou l’autre peut faire à peu près tout ce que vous pouvez imaginer, et ils sont tous les deux si personnalisables qu’au moment où vous avez fini de les personnaliser, ils sont exactement ce que vous voulez, ni plus ni moins.

Emacs me semble être un peu plus proche des normes ISO / CEI en matière de convivialité et de cohérence des interfaces utilisateur (bien que cela ne soit toujours pas conforme), et ne joue donc pas autant d’astuces avec votre «instinct» à propos de ce vim. La durée de vie de votre instinct que vous avez développé en travaillant avec d'autres programmes ne fonctionnera pas contre vous.

Vim est un modèle complètement différent, et à bien des égards, il est supérieur dans la mesure où il repose beaucoup moins sur les séquences Cntrl / Alt, mais uniquement sur ses modes, ce qui vous permet de garder vos points durs sur la ligne de départ et de taper plus rapide. Mais vim est pratiquement unique, et à moins d’installer un logiciel d’accompagnement très inhabituel (par exemple, Vimperator, Jumanji / Zathura, etc.), votre instinct que vous développez en travaillant avec vim ne sera pas transmis à d’autres programmes et inversement. Cela dit, je me suis installé sur vim moi-même. Tôt ou tard, il faut en choisir un, pour le meilleur ou pour le pire, car il est difficile de maîtriser les deux.

frabjous
la source
1
Un commentaire à propos de la ligne "les instincts que vous développez avec vim ne seront pas répercutés sur d'autres programmes": la ligne "set édition-mode vi" peut être ajoutée à un fichier ~ / .inputrc (sur les systèmes Linux qui la supporte) . Cela active la syntaxe vi-style pour la saisie de texte dans les programmes utilisant readline pour stdin, tel que le shell bash lui-même. Il peut y avoir (parfois de manière surprenante) beaucoup d’applicabilité plus large aux instincts d’édition que l’on développe avec vim.
Christian Abbott
Heureusement, il y a beaucoup de gens avec ce problème, et ils ont construit des extensions pour beaucoup de programmes pour les rendre plus vim-like .
DarkWiiPlayer
21

J'utilise les deux régulièrement. Je considère Emacs comme un éditeur "live in", alors que j'utilise Vim pour des tâches rapides et ponctuelles. Superficiellement, Emacs est beaucoup plus bouffi que Vim, et il n’est donc pas si pratique de "Fire up" que Vim, mais je trouve également que les philosophies de l’interface utilisateur de l’un à l’autre supportent ce paradigme. Emacs est beaucoup plus conçu pour vous garder à l'intérieur, rendre les choses agréables et confortables afin que vous n'ayez pas à quitter, alors que vim est beaucoup plus "Unixy" et se voit comme une partie d'une plus grande ceinture à outils.

Beaucoup de gens fuient Emacs en raison de sa forte dépendance à la chance , mais c’est une raison assez idiote pour moi. Le vrai pouvoir d’Emacs sur Vim est sa personnalisation, et avec la puissance de Viper, etc., ce n’est vraiment pas un problème. Certes, Vim-Script offre son propre niveau de personnalisation, et si, par exemple, votre langage de programmation préféré n’était pas doté d’un surligneur de syntaxe approprié, vous pourriez certainement en créer un, mais Emacs est finalement une machine auto-hébergée, et En fin de compte, vous pouvez faire beaucoup, beaucoup plus de manipulations. Il n'y a tout simplement pas d'outils tels que gnus ou org-mode dans Vim, pour n'en nommer que quelques-uns. En un mot, Emacs n’est pas simplement un éditeur, mais un système d’exploitation sacrément maudit.

Pour manipuler du texte, je dirais qu'ils sont exactement à égalité.

Eli Frey
la source
30
"Emacs ferait un excellent système d'exploitation, si seulement il avait un éditeur de texte digne de ce nom." - Je me suis rappelé cette citation.
Amphetamachine
@amphetamachine Je ne comprends pas la citation. Est-ce que cela signifie abaisser emacs-the-text-editor?
Tshepang
Cela veut dire, bien que je l'entende habituellement plus pince-sans-rire que mordant.
Cody Poll
En ce qui concerne les éditeurs eux-mêmes, je trouve que vim est plus facile à modifier avec du texte, mais je dois passer la main à emacs. Vimscript ne peut tout simplement pas résister à un souffle.
Cody Poll
19

Je vais mettre ma valeur de 0,02 $, car j'ai passé plusieurs années sous emacs et XEmacs, puis transféré chez vim. Pour être honnête, j’avais utilisé assez de vi entre 1990 et 1992, donc je connaissais bien son interface utilisateur.

Emacs

  • Emacs a été décrit comme un système Lisp qui vient d’être utilisé pour écrire un éditeur et il ya un grain de vérité dans tout cela. Vous pouvez implémenter à peu près tout ce que vous voulez dans elisp si vous souhaitez prendre votre temps pour comprendre l'environnement. Je ne peux pas dire que j’ai jamais appris à le savoir aussi bien, mais j’ai fait des trucs de frigo de temps en temps. Emacs et Xemacs ne sont pas totalement compatibles à ce niveau, les scripts tiers peuvent donc s'exécuter sur l'un mais pas sur l'autre.

  • Il a été constaté que RMS et certains autres pirates informatiques importants d’Emacs ont dû abandonner leur programme en raison de problèmes liés à OOS, où Bill Joy, Bram Moolenaar et divers autres personnalités de vi sont toujours à la tâche. Emacs est dur pour vos petits doigts.

  • Emacs est un système beaucoup plus catholique que vi et est considéré comme un exemple canonique d' enveloppement logiciel . Avec Netscape, c’est l’une des contributions de jwz à la démonstration de cette loi.

Une chose unique que j’ai faite avec xemacs j’ai eu l’occasion de l’exécuter sur une machine et d’ouvrir une session x sur un xterminal (en réalité un ancien Sun réutilisé 3/60) situé dans une pièce différente du même tampon sur la même instance en cours d’exécution.

Avantages: Extensible, plus puissant que tout autre éditeur connu de tous, intégration mature avec à peu près tous les principaux outils de programmation de logiciels libres.

Inconvénients: ergonomie douteuse, elisp n'est pas facile à apprendre.

Vim

Disclamer - Je suis passé d’employer emacs à vim il ya environ 10 ans et j’utilise habituellement vim sur des systèmes Windows et Unix / Linux.

  • Vi et ses descendants ont une très bonne facilité de macro clavier pour automatiser les tâches d’édition. La fonction de script dans vim n’est pas aussi sophistiquée que elisp, mais vous pouvez la construire avec une prise en charge de Python, Tcl, Perl et peut-être d’autres systèmes. J'ai rarement écrit des scripts (en dehors des fichiers .vimrc) pour vim.

  • Vim a une empreinte plus petite qu'emacs, mais ce n'est pas grave aujourd'hui.

  • La documentation de Vim et l'aide en ligne sont plutôt bonnes. Emacs a une assez bonne documentation en ligne, mais je ne pense pas qu'elle soit aussi complète que celle de vim.

  • Vim hérite de l'interface utilisateur modale originale de vi, mais a maintenant la capacité de se comporter beaucoup comme un éditeur sans modulaire, car vous pouvez naviguer en mode insertion. Sous Windows, il peut se comporter de manière assez similaire à une application Windows.

Avantages: bonne installation des macros au clavier, passablement bonne extensibilité et scripts, mais pas aussi bon que emacs. Les éditeurs dérivés de Vim ou vi sont standard sur la plupart, voire toutes les distributions unix ou linux à usage général. Sans doute une meilleure ergonomie.

Inconvénients: l'interface utilisateur modale semble étrange pour les personnes habituées aux interfaces utilisateur Windows. Moins de problème avec vim ces jours-ci.

Préoccupé parTonbridgeWells
la source
J'ai aimé lire votre réponse, mais le facteur décisif me manque. Qu'est-ce qui vous a poussé à passer d'Emacs à Vim?
Erik B
C'était juste organique - plus les macros de clavier de vim fonctionnent vraiment bien.
ConcernedOfTunbridgeWells
1
Bon sang, en tant que jeune programmeur, l'argument ergonomique est très attrayant. Cela aurait peut-être justifié mon choix d'aller apprendre le VI et le VIm au lieu d'Emacs.
Didier A.
15

J'utilise normalement Vim, mais ce sont tous deux d'excellents éditeurs.

Apprendre à utiliser vi était méchant, mais je m'en suis bien tiré et j'ai appris à l'aimer. Mes moments les plus frustrants ont été lorsque la clé de verrouillage des majuscules était activée. Vous pouvez essayer avec gVim, mais l'un des plus gros avantages de vi et Emacs est sa capacité à effectuer des tâches ordonnées tout en gardant les mains sur le clavier, et gVim vous permettra probablement de continuer à utiliser la souris. (Apprendre à jouer à des jeux fantasmagoriques en même temps me permettait de m'entraîner avec les touches de déplacement du curseur, mais me faisait parfois essayer de me déplacer en diagonale dans les documents.)

Emacs est probablement plus accessible. C'est sans modèle, et vous n'allez pas vous tromper en appuyant sur la touche de verrouillage des majuscules. L'idée de contrôler l'éditeur en tapant des lettres avec la touche de contrôle enfoncée ne devrait pas être trop étrangère aux utilisateurs expérimentés, bien que les touches permettant de faire quoi que ce soit paraîtront sauvages et arbitraires pour l'utilisateur typique de Windows / Mac OS X. Encore une fois, les versions qui vous permettent d’utiliser la souris vous font peu de faveurs à long terme.

Les deux nécessitent un certain niveau d'expertise pour être utilisés efficacement. Contrairement au Bloc-notes, par exemple, vous ne pouvez pas simplement vous asseoir et éditer.

Les deux sont configurables, bien que pour mon argent, écrire des extensions dans le même Lisp, l'éditeur est écrit en fait une expérience plus douce. (Emacs, tel qu’il est normalement distribué, n’est pas vraiment un éditeur. C’est un environnement Lisp conçu pour le traitement de texte, avec beaucoup de logiciels pré-écrits, y compris un éditeur. D’où la blague "Emacs fabrique un shell décent, mais il pourrait utiliser un meilleur éditeur. ")

J'utilise normalement Vim car, après une formation poussée, c'est plus facile. Cela peut être dû aux avantages du système de mode, où un nombre immense de commandes sont disponibles en utilisant un doigt près des lignes de départ, ou "syndrome de bébé canard", qui s’applique beaucoup aux éditeurs: une fois que vous apprenez un bon, vous vous en tenez à à cela.

Vous ne vous tromperez pas non plus.

David Thornley
la source
9

La principale raison pour laquelle je n'utilise pas vi / vim est qu'il est modal. La principale raison pour laquelle j'utilise vi est qu'il est disponible presque partout.

Dennis Williamson
la source
12
La principale raison pour laquelle j'utilise vim est qu'il est modal. Courbe d'apprentissage plus longue, mais beaucoup plus facile à utiliser une fois que vous y êtes habitué.
Kris Jenkins le
1
Il est à noter que si vous aimez l'édition modale, Emacs a un bon support pour le faire à travers le mal-mode - emacswiki.org/emacs/Evil
Charles Stewart
9

Je pense que le commentaire "vim is modal" ci-dessus est incorrect. Vim a des commandes. Vous pouvez faire "11aNow est le temps pour tous les hommes bons .." et se retrouver avec 11 nouvelles lignes de texte identiques dans votre fichier. C'est une commande, pas un mode. Mais il existe en fait une différence fondamentale entre les commandes Vim et les commandes Emacs. Je ne suis pas tout à fait sûr de pouvoir le décrire, mais Eric Fischer a incorporé la modification de ligne de style Emacs dans un pilote TTY il y a plus de 10 ans et a publié un article à ce sujet:

http://www.usenix.org/event/usenix99/full_papers/fischer/fischer.pdf

Il a constaté que l'édition des lignes de style Emacs était fondamentalement différente de celle de vi.

Donc, Emacs a un avantage: beaucoup d’autres choses (bash, gnuplot, zsh, ksh, d’autres auxquelles je ne peux pas penser immédiatement) impliquent toutes l’implémentation de l’édition de lignes de style Emacs.

Je dois noter que j'utilise personnellement Vim tout le temps. Je ne suis qu'un utilisateur très occasionnel d'Emacs.

Bruce Ediger
la source
1
set -o vidans bashou zshn'est pas trop difficile à exécuter (ou mettre dans un rcfichier) à mon avis.
moon.musick
@ moon.musick - certainement pas, je le fais tout le temps. C'est juste que gnuplotPostgresql psql, MySQL mysqlet une tonne d'autres interfaces font tous le mode Emacs plus ou moins par défaut. Si seulement Oracle pouvait faire l’ sqlplusédition en ligne de commande ... non, non. Ce serait trop demander à une grande entreprise. Ils ont des tendances à suivre!
Bruce Ediger
Oui, la plupart inputrcdu temps, c'est ce qui se passe avec les outils shell, mais je me demande alors pendant une demi-seconde pourquoi jne pas défiler vers le bas, disons, dans Mendeley Desktop après y être passé depuis un terminal, et on leur a demandé plusieurs fois de vim fixations. Je ne peux pas tout couvrir et avoir un environnement cohérent, malheureusement.
moon.musick
2
@BruceEdiger Je doute fortement que les développeurs de mysql(1), psql(1), gnuplot(1), aussi python(1), perlconsole(1), lftp(1), smbclient(1)et en effet beaucoup de programmes interactifs étaient préoccupés par les raccourcis clavier pour la ligne d'édition. Tous ces logiciels utilisent simplement GNU Readline , et le mode par défaut pour GNU Readline est (sans surprise) semblable à GNU Emacs. set editing-mode vi dans votre ~/.inputrcet voila - tous ces outils ont des raccourcis clavier de type vi.
Dmitry Alexandrov
9

Comme cela n'a pas été explicitement indiqué, j'ajouterai qu'il n'existe pas de meilleur environnement de programmation (Lisp dans une boîte, SLIME, etc.) qu'une distribution Emacs légèrement modifiée. Tous mes besoins en programmation (99%) sont pris en charge depuis Vim, mais pour toutes les bibliothèques et routines Lisp que j'écris, je dois lancer Emacs pour que tout soit productif.

Shamster
la source
8
Je me demande parfois si cela en dit plus sur Lisp ou sur Emacs, et si c'est bon ou mauvais ...
Kevin Cantu
8

J'utilise Vim / gVim.

J'avais l'habitude d'utiliser Emacs, mais je trouvais que gVim fonctionnait généralement plus rapidement sur des machines plus lentes. De plus, en raison de son exigence POSIX, vi est disponible presque partout.

Lorsque j'utilise Vim ou gVim, j'utilise beaucoup la souris, je pense que l'assistance est excellente.

J'ai commencé à utiliser Emacs, parce que c'était plus facile à utiliser pour un utilisateur novice. J'ai trouvé l'utilisation de nano assez sujette aux erreurs pour une raison quelconque, et à un moment donné, j'ai réalisé que j'étais beaucoup plus à l'aise avec l'utilisation de vi.

En ce moment, c'est un mélange. J'utilise assez souvent Eclipse et gedit. Vim, cependant, reste mon éditeur préféré et le plus utilisé.

polemon
la source
7

J'utilise assez bien gVim et Emacs pour être productif, bien que je ne sois expert en cela. Une chose que je peux dire avec certitude est que Vim et gVim fonctionnent plus vite sur mon ordinateur portable Windows 7 (que je dois utiliser au travail). Emacs, sous Windows, a l’habitude de "faire une pause" pendant une minute et de ne plus répondre, même en continuant d’accepter la saisie au clavier, avant de recracher rapidement tout ce qui s’est accumulé dans la mémoire tampon du clavier. Cela ne se produit pas sous Mac OS ou Linux. Néanmoins, je me trouve souvent sous Vim ou gVim sur toutes les plates-formes, pour ne pas avoir à m'arrêter et à réfléchir au type d'éditeur que j'utilise et à mon ajustement. Cela dit, dans un environnement purement * nix, je resterais probablement avec Emacs parce que je trouve la modification de modèles un peu plus naturelle.

Conclusion: à mon avis, les deux éditeurs sont suffisamment puissants pour gérer tous les besoins d’édition de texte. Le choix doit être basé sur des considérations pratiques (telles que les détails d'implémentation de la plate-forme) et le style de travail.

Wing Flanagan
la source
3

La principale différence entre Emacs et Vim est son ergonomie. Comme vous le savez, il existe un syndrome du canal carpien, CTS. Emacs est très "dangereux" si vous avez CTS et provoque CTS. Vim - non, vous pouvez lire sur cette différence dans de nombreux endroits. Par exemple, dans Vim, vous ne pouvez modifier du texte qu’avec un seul doigt. Dans Emacs - vous ne pouvez pas :)

Paul
la source
3
Il n'est même pas prouvé que CTS est réellement lié à l'utilisation du clavier. Bien que superficiellement plausibles, il existe des liens montrant que la CTS est réellement causée génétiquement plus que toute autre chose. Ainsi, même s'il est toujours utile de taper moins quand vous avez déjà CTS, je ne pense pas qu'il soit prouvé qu'un éditeur est à l'origine de CTS plus qu'un autre.
Konrad Rudolph
-2

J'utilise vi/ nvi(NOT vim) parce que c'est simple et discret.

vimaime bipe tellement qu'il est plus difficile et peu évident de se faire taire. Je devais retirer physiquement le haut-parleur interne du PC avant de finalement trouver que l'enterrement-ref sur la façon de le faire :)

set vb t_vb=

De plus, je n'utilise pas la coloration syntaxique, le gris sur noir est pour moi le plus beau.

Et peut-être que je suis trop stupide pour comprendre que, d'une manière enchevêtrée sur plusieurs touches emacs, la seule combinaison de trois touches dont je me souvienne est CTRL-ALT-DEL.

aa.
la source
-2

"Quels sont les avantages et les inconvénients de Vim et Emacs?" - ah!

Je laisserai surtout les avantages aux autres.

Les inconvénients de ces deux sont qu'ils sont tous les deux old school. Au fil des ans, j'ai probablement utilisé 50 éditeurs différents, des éditeurs de ligne de base aux éditeurs codés par assemblage très rapide (VEDIT pour un), en passant par les éditeurs à interface graphique sophistiquée, certains meilleurs que d'autres. J'ai même écrit mon propre éditeur spécial appelé ForthStar et je l'ai adapté pour éditer un arbre de feuilles brisées, avec plusieurs index pour une recherche puissante, comme pour trouver instantanément les dernières feuilles que je viens d'éditer, ou pour trouver rapidement des composants de code, ou des parents de feuilles. ou des enfants.

Je pense que vi et emacs sont plus religieux que musclés. Les esprits créatifs qui les ont construits ont en grande partie évolué et le nouveau soutien manque de courage et de compétence pour les réinventer.

Oui, Emacs peut faire beaucoup, mais il est ralenti par le slisp, un langage magnifique et maintenant largement obsolète.

Les deux sont coincés dans des configurations de clavier difficiles. Emacs pourrait s’adapter un peu, au minimum, à l’utilisateur en reconnaissant qu’il existe une touche Alt plutôt que l’ancien Meta. Et tout comme WordStar, il est indéniable que garder le CA directement à partir de CA B lorsque la frappe rapide n’est pas digne de distinction Mieux vaut simplement en avoir un qui est déclenché par l’une ou l’autre combinaison. Oui, vous pouvez modifier les raccourcis clavier, mais alors quel gâchis vous avez plus tard.

Vi est intelligent, mais il manque des fonctions de recherche et de remplacement puissantes, comme dans Notepad ++, qui vous montre ce qu’il a trouvé, vous permet de le développer et de l’appliquer de manière sélective, en couleur, pour ne citer qu’une seule innovation.

Presque n'importe quelle autre interface graphique de nos jours permet de zoomer avec la molette de la souris. L’interface graphique d’Emacs ne semble pas faire fonctionner cela. Et où est le gentil greeking comme ce que Kate a?

Mon clavier préféré au fil des ans était le curseur en diamant de Wordstar. Au moins, c'était facile à apprendre et cela a du sens immédiatement. WordPerfect est l’un des projets que j’ai le plus détesté, ce qui accroît sa complexité et semble reposer quelque peu sur emacs.

Voyons les choses en face, la plupart des pays du monde ont une interface graphique. Et qu’on le veuille ou non, les éditeurs de texte sont quelque peu coincés dans leur âge.

Je pense qu’il serait préférable de disposer d’un éditeur universel capable de basculer facilement entre emacs, vi, wordstar ou n’importe quelle disposition de touches, sans perdre les commandes plus puissantes qu’il a à offrir. Les vrais programmeurs doivent utiliser une variété d’outils d’édition. Pourquoi ne pas avoir un éditeur qui réponde à nos besoins pour faire le travail plutôt que pour nous forcer à faire les choses?

Vue éliptique
la source
Comme la question demandait à la fois le pour et le contre, cela ne répond pas à la question. Autant que je sache, il indique uniquement comment les autres éditeurs sont meilleurs que Vi et Emacs.
Kusalananda
Toutes les réponses sont acceptables pour une question, jusqu’à ce qu’elles répondent à la question et qu’elles soient essentiellement différentes des précédentes. "Semble bien".
user259412
Le Q demande clairement les inconvénients. Et je mentionne quelques avantages.
Vue elliptique le