Sans entrer dans un argument religieux sur pourquoi l'un est meilleur que l'autre, quelles sont les différences pratiques entre Emacs et Vim? Je cherche à apprendre l'un ou l'autre, mais je me rends compte que la courbe d'apprentissage pour chacun est élevée et je ne peux pas décider. Je n'ai jamais utilisé d'éditeur de ce type (j'ai toujours utilisé des IDE), donc tout ce qui aide un débutant est un plus.
Avant qu'une guerre des flammes ne commence: je ne demande pas ce qui est mieux, je demande les différences entre les deux. Je voudrais une comparaison objective .
,salespitch
dit #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.
PAGER=cat man
homme affichera le texte directement à l'écran.i, esc, wq
.Réponses:
(le texte ci-dessous est mon avis, il ne doit pas être pris comme un fait ou une insulte)
Avec Emacs, vous devez l'ouvrir 24 heures sur 24 et 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, 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 musique, la navigation sur le Web. Cela prend des semaines et des semaines avant que vous en soyez satisfait, puis vous apprendrez de nouvelles choses tout le temps. Vous serez ennuyé lorsque vous n'y aurez pas accès et changerez constamment de configuration. Vous ne pourrez pas utiliser facilement les versions 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. (rien du tout)
Avec Vim, il est presque toujours pré-installé. C'est rapide. Vous ouvrez un fichier, effectuez une modification rapide, puis quittez. Vous pouvez travailler avec la configuration de base si vous êtes sur la machine de quelqu'un d'autre. Ce n'est pas tout à fait aussi modifiable, mais c'est encore beaucoup mieux que la plupart des éditeurs de texte. Il reconnaît que la plupart du temps vous ne lisez / éditez pas en tapant et rend cette partie plus rapide. Vous ne souffrez pas d' emacs pinkie . Ce n'est pas si exaspérant. C'est plus facile à apprendre.
Même si j'utilise Emacs toute la journée tous les jours (et que j'adore), sauf si vous avez l'intention de passer beaucoup de temps dans le programme que vous choisissez, je choisirais vim
la source
vi
au lieu d'être unvim
alias.ssh
les autres machines. C'est pourquoi je l'ai appris en premier - cela, et parce que mes amis connaissaient VIM et pouvaient m'aider. (Ne sous-estimez pas non plus le soutien de vos amis!)Vim n'est pas un shell. Et il ne communique pas bien avec les sous-processus. C'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 (produisant une sorte d'IDE), sont difficiles dans Vim.
De plus, les raccourcis Emacs sont principalement accessibles via des modificateurs, et évidemment l'interface Vim est réputée modale, donnant accès à une quantité absurde de touches directes pour la manipulation.
Emacs était le seul éditeur des deux qui était programmable, et bien que Vim ait beaucoup de niveaux étranges à sa programmabilité, avec l'ajout de liaisons Python et Ruby (et plus, j'oublie), Vim est également programmable de la plupart des façons vous aimeriez.
J'utilise Vim et j'en suis assez satisfait.
la source
Vigueur:
Emacs:
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 d'être un éditeur qui veut être un IDE (ou devrais-je dire, un OS), mais qui n'est pas tout à fait, est à mon humble avis, obsolète. Autrefois, avoir un client de messagerie, un client ftp, tetris, ... tout cela dans un seul paquet (emacs) avait du sens ... de nos jours, ce n'est plus le cas.
Les deux sont cependant un sujet de discussions religieuses entre les programmeurs et les utilisateurs de la communauté des super-utilisateurs, et à cet égard, les deux sont excellents pour déclencher des guerres de flammes s'ils sont mis en contact (dans la même phrase / question).
la source
Si vous recherchez une analyse objective des deux éditeurs, regardez leurs origines et la philosophie derrière leurs conceptions respectives. Pensez à celui qui vous conviendrait le mieux et apprenez-le (et apprenez-le et apprenez-le, car il vous faut du temps avant de découvrir sa véritable utilité par rapport à n'importe quel IDE). Une introduction à la modification d'affichage avec Vi a été écrite par Bill Joy et Mark Horton et il explique pourquoi il a choisi la conception modale et la justification de divers traits clés (cela m'aide à me rappeler que CTRL-W + W (passera au W indow suivant et sera la même pour CTRL W + CTRL W, juste au cas où vous auriez maintenu la touche CTRL pendant une durée plus longue.
Voici un lien vers la chronologie Emacs et contient la référence au papier Multics Emacs. Voici un article RMS sur Emacs , où je vois que l'accent est mis sur un éditeur de texte programmable (même en 1981 et avant).
Je n'ai pas lu les papiers emacs, mais j'ai lu le papier vi de Bill Joy à quelques reprises. Les deux sont anciens, mais vous obtiendrez toujours la philosophie et vous pourriez choisir d'utiliser l'outil actuel (vim 7.x ou emacs 25?)
Edit: J'ai oublié de mentionner qu'il faut de la patience et de l'imagination pour lire ces deux articles car cela vous ramène dans le temps tout en le lisant. Mais ça vaut le coup.
la source
Vim était toujours 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 personnalisation modérée de l'un ou l'autre, Vim démarrera toujours plus rapidement qu'Emacs.
Après cela, l'autre différence pratique était les modes d'Emacs. Ils vous facilitent considérablement la vie lors de l'édition de XML, C / C ++ / Java / que ce soit, LaTeX et des langages les plus populaires auxquels vous pouvez penser. Ils vous donnent envie de garder l'éditeur ouvert pour les longues sessions et le travail.
Dans l'ensemble, je dirai que Vim vous attire pour des tâches d'édition courtes et rapides; tandis qu'Emacs vous encourage à plonger pour de longues sessions.
la source
use-package
et son:defer
option, mon Emacs s'ouvre presque immédiatement. J'ai même renoncé à utiliser emacsclient.Le VI est toujours disponible et fonctionnera sur le mode utilisateur le plus paralysé, les graphiques cassés, pas de carte de touches, la machine de liaison lente - il vaut donc la peine de savoir comment éditer des fichiers simples dedans juste pour les tâches sysadmin.
Emacs est une interface utilisateur complète dans un éditeur. L'idée est que vous allumiez Emacs lorsque vous démarrez la machine et que vous ne la quittiez jamais. Il est possible d'avoir des milliers de sessions présentes.
La question de savoir si l'apprentissage des capacités d'Emacs en vaut la peine par rapport à l'utilisation d'un éditeur GUI / IDE et à l'utilisation de quelque chose comme python / awk / etc pour des tâches supplémentaires dépend de vous.
la source
ed
que c'était "toujours disponible et fonctionnera sur le mode utilisateur le plus paralysé, les graphiques cassés, pas de clavier, la machine à liaison lente." Attendez, quelle année est-ce? (Soupir -ed
, je ne t'oublierai jamais.)Je suis un fan-fan à part entière d'Emacs, mais je connaissais VI bien avant de connaître Emacs. Cela dit, je fais apprendre à tous mes gens le VI car il est toujours disponible, partout. Je ne peux pas me tromper avec l'un ou l'autre.
la source
Il semble qu'une réponse ait déjà été sélectionnée, mais la grande différence pour moi a toujours été le modal par rapport au non-modal. Vim est modal, ce qui signifie qu'il effectue des optimisations basées sur un ensemble spécifique de modes d'utilisation. C'est du moins ainsi que je l'ai toujours considéré. Cela rend l'utilisation de Vim une expérience différente car au lieu d'avoir une zone de travail dans laquelle vous tapez du code, vous dites vraiment à un environnement d'agir sur le texte. C'est pourquoi les gens disent qu'avec Vim, vous apprenez vraiment une langue. Les: wq et: s / foo / bar font tous partie d'un environnement de type shell qui édite et lit le texte.
Emacs, d'autre part, est beaucoup plus proche de la plupart des éditeurs / traitements de texte / etc. vous voyez aujourd'hui. Vous disposez d'un espace de travail doté d'une interface hautement programmable. C'est pourquoi vous voyez des choses comme le courrier électronique, l'irc, les shells, etc. En tant que programmeur, il est facile de penser en termes de "prendre le numéro de ligne sur lequel je suis et de faire quelque chose avec les informations". Le désir de quitter l'éditeur diminue car au lieu de devoir quitter, ouvrir une autre application / langue et faire des choses sur du texte, vous avez Emacs où vous pouvez faire ces choses dans le cadre de votre éditeur.
Les deux idées ne sont pas nécessairement contrastées, mais c'est simplement qu'elles révèlent deux axes différents. Personnellement, j'utilise Emacs, mais j'ai vu des gens qui connaissent très bien Vim et peuvent honnêtement dire que peu importe ce que vous choisissez. J'ai d'abord essayé Vim mais Emacs a fini par rester pour moi. Il est vrai que peu importe ce que vous choisissez, vous devriez être au moins assez compétent dans Vim car il est vraiment toujours disponible.
la source
J'ai commencé avec vi, je suis allé à emacs, puis à vim. J'ai pensé à essayer Emacs pour voir ce qui a changé au cours des cinq dernières années. (En parlant d'IDE, j'étais entré dans l'éclipse pendant un certain temps, mais je préfère que ma fenêtre de terminal connecte mon mac à ma boîte Linux (de mon mari)).
Le truc du copier-coller me dérange ces derniers temps. Couper et coller dans Vim prend plus d'étapes que dans Emacs, IIRC. Et coller de, disons, un navigateur à une fenêtre de terminal est irritant à moins que vous ne fassiez quelque chose de fantaisiste que je n'ai pas envie de faire, alors je supporte l'étrange indentation. Je pense que l'édition de plusieurs fichiers dans emacs était plus facile. Au moins passer d'un fichier à l'autre si vous les avez tous les deux à l'écran.
Je n'ai pas joué avec les fonctionnalités sophistiquées de vi ou d'emacs, car j'aime simplement me lancer dans le codage. Tout ce dont j'ai besoin, c'est des jolies couleurs et une conversion appropriée de l'onglet en espace (particulièrement important avec python).
Je pense que tout dépend si vous souhaitez utiliser
:wq
ouCtrl-x Ctrl-s
(IIRC) pour enregistrer un fichier si vous ne vous souciez pas de la fantaisie.@mgb était correct. J'ai été dans le strict minimum Linux pour corriger quelque chose il y a juste un mois ou deux dans une distribution Debian. vi était le seul éditeur disponible.
la source
:set paste
, puis collez votre texte et lorsque vous:set nopaste
aurez terminé , vous reviendrez au mode normal. Il y a aussi la:set pastetoggle=<F2>
commande qui va basculer cela en utilisant le combo de touches que vous avez choisi.^R^P+
pour coller à partir du presse-papiers et conserver l'indentation actuelle.^R^O+
supprimera l'indentation.^R+
l'insérera comme si vous l'aviez tapé.:help i_^R^P
pour plus d'informations.yyp
. Voir également ici pour couper et coller vers et depuis différentes fenêtres stackoverflow.com/a/8757876/654789Il y a une énorme différence au jour le jour - Vim (ou toute variante vi) est intrinsèquement modal (vous passez dans des modes de commande où vous ne pouvez pas modifier) et Emacs (avec la plupart des autres éditeurs) ne l'est pas.
Bien sûr, en utilisant des menus et autres, vous n'avez pas besoin de passer en mode commande dans Vim - au début. Mais pour utiliser même une infime fraction de la puissance de Vim, vous le ferez. C'est au cœur du débat Vim / Emacs.
Personnellement, je pense aussi qu'Emacs est beaucoup plus extensible. Vous pouvez trouver des packages Elisp pour beaucoup de choses.
Je suis curieux, cependant, pourquoi vous songez à en apprendre un sur un IDE plus traditionnel. Pourquoi voulez-vous en apprendre un?
la source
Il y a beaucoup de choses qui ont été dites sur les deux éditeurs, mais je n'ai que 5 pence à ajouter. Les deux éditeurs sont merveilleux et vous ne pouvez pas vous tromper avec l'un ou l'autre.
Je suis un utilisateur vi / vim depuis environ 15 ans maintenant. J'ai essayé de convertir en emacs plusieurs fois, mais à chaque fois, je découvrais plutôt que vim peut réellement faire la chose manquante hors de la boîte sans avoir besoin d'écrire une extension lisp ou d'installer quelque chose.
Pour moi, la principale différence dans les éditeurs que vim vous fait utiliser l'environnement / OS, tandis qu'emacs essaie de l'encapsuler ou de le remplacer. Par exemple, vous pouvez ajouter une date dans votre texte par: r! Date dans vim, ou calendrier avec: r! Cal 1 2014, ou même remplacer le contenu de votre tampon par la version hexadécimale du contenu. Par exemple. :%! xxd, éditez l'hex puis revenez avec:%! xxd -r, et bien d'autres utilisations, comme grep intégré, sed, etc.
Un autre exemple est l'utilisation avec
jq
etgron
. Par exemple. collez json blob dans l'éditeur, puis exécutez la transformation:OU
Chacune des commandes canalisées ci-dessus peut être exécutée séparément via
:%!<command>
, où%
signifie tout le document, mais peut également être exécutée sur la sélection, les lignes sélectionnées, etc. Ici, gronoutput
peut être utilisé commejq
chemin.Vous bénéficiez également de la fonctionnalité d'édition par lots EX, par exemple. Remplacer certains mots, reformater le code, convertir dos-> caractères de nouvelle ligne unix, exécuter une macro sur disons 100 fichiers à la fois. Cela se fait facilement avec ex. Je ne sais pas si emacs a quelque chose de similaire.
En d'autres termes, IMHO vim se rapproche de la philosophie unix. Il est généralement plus simple et plus petit, mais si vous connaissez votre système d'exploitation et vos outils, vous n'aurez probablement pas besoin de plus que ce qu'il a à offrir (VIM). Je ne fais jamais.
Outre le fait que vi est de facto standard sur tout système unix / linux, pourquoi apprendre à utiliser 2 outils qui font la même chose. Bien sûr, certains systèmes offrent mg ou quelque chose de similaire, mais certainement pas tous. Unix + Vi <3.
Eh bien, juste mon 5 pence.
la source
Pour moi, les pros des emacs sont,
la source
Pour moi, emacs a de meilleurs outils de développement (pas seulement des outils basés sur des tags).
la source
Je voudrais mettre ici une citation du livre "L'art de la programmation UNIX":
Ce que je veux vraiment souligner ici, c'est: « Beaucoup de gens trouvent utile de connaître les deux .»
la source
Avantages d'Emacs
Emacs possède une interface non modale (par défaut) et une interface modale (par exemple, elle peut émuler vim et vi via Evil, Viper ou Vimpulse).
L'un des programmes informatiques les plus portés. Il s'exécute en mode texte et sous des interfaces utilisateur graphiques sur une grande variété de systèmes d'exploitation, y compris la plupart des systèmes de type Unix (Linux, les différents BSD, Solaris, AIX, IRIX, macOSetc.), MS-DOS, Microsoft Windows, AmigaOS, et OpenVMS. Les systèmes Unix, à la fois gratuits et propriétaires, fournissent fréquemment des Emacs fournis avec le système d'exploitation.
L'architecture du serveur Emacs permet à plusieurs clients de se connecter à la même instance Emacs et de partager la liste des tampons, le kill ring, l'annulation de l'historique et d'autres états.
Système d'aide en ligne omniprésent avec des raccourcis clavier, des fonctions et des commandes documentés à la volée.
Variante de langage de programmation Lisp extensible et personnalisable (Emacs Lisp), avec des fonctionnalités qui incluent:
Un gestionnaire de fichiers puissant et extensible (dired), un débogueur intégré et un large éventail d'outils de développement et d'autres outils.
Le fait que chaque commande soit une fonction Emacs Lisp active les commandes DWIM (Do What I Mean) en répondant par programme aux actions passées et à l'état du document. Par exemple, une commande switch-or-split-window peut basculer vers une autre fenêtre si elle existe ou en créer une si nécessaire. Cela réduit le nombre de frappes et de commandes dont un utilisateur doit se souvenir.
"Un OS à l'intérieur d'un OS". Emacs Lisp permet de programmer Emacs bien au-delà des fonctions d'édition. Même une installation de base contient plusieurs dizaines d'applications, dont deux navigateurs Web, des lecteurs de nouvelles, plusieurs agents de messagerie, quatre clients IRC, une version d'ELIZA et une variété de jeux. Toutes ces applications sont disponibles partout où Emacs s'exécute, avec la même interface utilisateur et les mêmes fonctionnalités. À partir de la version 24, Emacs comprend un gestionnaire de packages, ce qui facilite l'installation d'applications supplémentaires, notamment des navigateurs Web alternatifs, EMMS (Emacs Multimedia System), etc. De nombreux packages sont également disponibles pour la programmation, dont certains ciblent des combinaisons langue / bibliothèque spécifiques ou des styles de codage.
Avantages des éditeurs de type vi
Source: https://en.wikipedia.org/wiki/Editor_war
la source
Maintenant, vous n'avez même plus besoin de penser à la différence entre ces deux en raison des Spacemacs . Il s'agit d'une distribution Emacs communautaire.
Comme il l'a dit,
Spacemacs combine le meilleur d'Emacs et de Vim, ce qui vous facilite la vie et le travail.
Voir capture d'écran ci-dessous,
(source: spacemacs.org )
la source
La plus grande différence pour moi dans le choix d'utiliser emacs par rapport à vim était le support gdb intégré dans emacs. Vim ne l'a pas inclus dans sa distribution par défaut et le projet d'intégration de gdb et vim était presque impossible de travailler avec MacVim
la source
C'est comme des pommes et des oranges. Les deux ont un design et une philosophie différents. Vim est un éditeur de texte tandis qu'Emacs est un interpréteur Lisp qui effectue l'édition de texte.
J'utilise Vim parce que c'est rapide, glissant et vraiment bon pour manipuler des textes. Il a une liaison de clé naturelle composable qui peut rendre vos tâches de développement vraiment harmoniques. Vim est basé sur la simple philosophie * nix de bien faire une chose - c'est-à-dire la manipulation de texte.
Étendre Vim en utilisant bash / zsh et tmux est généralement facile et vous permet d'apprendre beaucoup de choses. À mon humble avis, c'est une bonne courbe d'apprentissage. L'essentiel est d'apprendre à intégrer ces éléments pour obtenir une application plus fonctionnelle. Avec Vim, vous devrez apprendre l'intégration, car elle ne s'intègre pas naturellement, sauf si vous lui dites comment. Une autre extension intéressante que j'utilise est Tig. C'est une interface Git basée sur ncurses. J'ai juste une reliure qui ouvre Tig silencieusement et ensuite je fais toutes les choses Git là-bas.
C'est à l'utilisateur final de décider ce qui fonctionne le mieux. Le fait qu'Emacs et Vim aient résisté à l'épreuve du temps est la preuve de leur valeur. Finalement, un bon programmeur n'a besoin que d'un stylo et d'un papier pour être créatif. Les bons algorithmes n'ont pas besoin d'éditeurs pour les sauvegarder. Essayez donc les deux et voyez ce qui vous rend plus productif. Et découvrez les modèles de conception de ces deux logiciels car il y a beaucoup à apprendre et à découvrir!
la source
Emacs a le mode viper, donc dans un sens réel, il fournit un surensemble de fonctionnalités (à l'exception de celles décrites dans Quelles fonctionnalités Vim manquent dans Emacs avec Viper et Vimpulse? ).
vi (et VIM IIRC) est plus léger (il peut éditer des fichiers sur place), mais offre moins de fonctionnalités (communication de sous-processus, langage d'extension).
la source
Emacs est vraiment plus un programme tout faire , et vi (m) est vraiment juste un éditeur. Si vous modifiez du texte, ils sont tous les deux très bien, mais je préfère emacs, simplement parce que je dois en déplacer un hors de la ligne d'accueil pour se déplacer et continuer à taper les mauvaises choses en mode commande. Si vous n'avez pas ce problème, vi (m) peut être l'éditeur pour vous.
la source
Un point de vue ictérique:
vi (pas vim) est une nécessité professionnelle. Vous avez toujours une forme de vi facilement disponible, quel que soit l'environnement. Vous pouvez être dans vi quand dans emacs, vous pouvez être dans vi pour construire des commandes bash dans unix-land.
Même Microsquish doit prendre en charge vi (bien qu'ils réussissent bien à le cacher) en raison de la conformité des gouvernements et des entreprises aux normes publiées.
À mon avis, si vous êtes dans un travail pratique dans un environnement occupé - pas une fleur de serre confinée à une seule plate-forme de fantaisie dans un environnement de développement ou dans le milieu universitaire - en savoir beaucoup sur un éditeur de fantaisie est un handicap de travail. N'apprenez pas toutes les astuces de fantaisie dans vim ou emacs, et ne développez pas un tas de macros pour faire plier l'environnement d'édition à votre guise. C'est un énorme temps qui vous gêne lorsque vous vous occupez de différentes machines que vous ne pouvez probablement pas justifier dans un environnement d'usine.
Lisez l'article de Bill Joy - c'est un exercice d'ingénierie très compétent, peut-être même magnifique, pour éditer du texte brut très, très rapidement. La règle de Parito s'applique ici: 80% des fruits sont dans 20% des paniers. L'édition de texte brut très très rapidement est au cœur de la compétence d'édition - tout le reste est facultatif - et parfois blessante.
la source
Si vous vous déplacez beaucoup d'un site à l'autre ou si votre travail implique de vous connecter aux systèmes de production, alors vim est la solution.
Toutes les machines * nix auront vi installé par défaut.
La plupart des sysdamins préfèrent ksh comme shell par défaut. ksh utilise les touches de commande vi (ou emacs) pour rechercher l'historique et modifier la ligne de commande.
Si vous ne connaissez pas bien vi vous êtes gravement handicapé lorsque vous vous connectez à une boîte Unix avec une configuration standard.
Pour cette seule raison, je recommanderais vim comme votre éditeur quotidien normal. J'ai vu des fans d'Emacs arracher leurs cheveux en essayant de modifier des fichiers de configuration sur un serveur UNIX OS.
la source
set -o vi
dans votre.bashrc
, au lieu deset -o emacs
, qui est utilisé par défaut. Je n'ai jamais utilisé ksh, mais ce pourrait être la même chose.Dans votre question, vous n'avez pas mentionné que vous souhaitiez qu'il se programme en Lisp! Mais comme vous avez commenté vos réponses, j'ai compris que vous vouliez en fait une interface de programmation LISP.
Pour cette tâche précise, oubliez simplement Vi. L'intégration d'Emacs avec LISP est merveilleuse! Vous devez utiliser SLIME. Vous aurez alors une merveilleuse intégration avec le REPL, étant capable de
eval
fonctions, tampons ou fichiers directement dans un interpréteur en cours d'exécution dans un tampon emacs et bien plus encore ...la source
Je travaille avec spacemacs depuis environ 2 ans et neovim depuis environ un an maintenant dans un environnement de production / recherche. Spacemacs est emacs avec quelques fonctionnalités supplémentaires intéressantes comme les couches, etc. Et neovim est à nouveau un fork de vim avec des fonctionnalités supplémentaires.
Je suis assez insatisfait des deux en termes d'expérience. Et je suis toujours à la recherche d'une solution à long terme pour mes besoins d'édition de texte.
Voici une comparaison simple:
Neovim, vim, emacs, spacemacs, etc. tous ces éditeurs consomment moins de ressources que la plupart des éditeurs.
Neovim / vim est légèrement plus rapide que emacs, sensiblement plus rapide que spacemacs.
En termes d'expérience d'édition. Je peux facilement dire que les paquets emacs se sentent supérieurs. Je pense que c'est parce qu'ils se fondent mieux avec le cœur d'emacs.
Vimscript est sympa et il y a certainement de grands projets dans l'écosystème vim également. La bonne chose est qu'ils sont mieux documentés que la plupart des projets emacs que j'ai vus jusqu'à présent.
Les deux peuvent être glitchy selon le package que vous utilisez. Les Spacemacs ont tendance à geler, et les neovim ont tendance à afficher des messages d'erreur effrayants, alors choisissez votre poison là-bas.
L'édition modale dans vim, n'est pas un concept intuitif, mais une fois que vous vous y êtes habitué, vous le voulez quand même. Les deux éditeurs fournissent cela.
la source
Exécution des frappes ::: l'édition vi conserve chaque permutation des touches tapées. Cela crée un chemin dans l'arbre de décision qui identifie sans ambiguïté n'importe quelle commande, tandis que les commandes Emacs sont une combinaison de clés tapées exécutées immédiatement, ce qui laisse à l'utilisateur le choix d'utiliser ou non une commande.
Utilisation de la mémoire et personnalisation ::: vi est un programme plus petit et plus rapide, avec une capacité de personnalisation plus limitée, tandis qu'Emacs prend plus de temps à démarrer et nécessite plus de mémoire. Cependant, il est hautement personnalisable et comprend un grand nombre de fonctionnalités, car il s'agit essentiellement d'un environnement d'exécution pour un programme Lisp conçu pour l'édition de texte.
la source
vim est un éditeur pratique, vous tapez simplement
vim filename
pour ouvrir le fichier, modifier, enregistrer et fermer.emacs est un "système d'exploitation" qui prétend être un éditeur, vous pouvez
eval
coder pour changer son comportement et l'étendre à votre guise. UNEmode
pour recevoir / envoyer des e-mails sur emacs est comme un logiciel de messagerie sur le système d'exploitation.Lors d'une édition simple, par exemple pour modifier un fichier de configuration, j'utilise vim .
Sinon, je ne quitte jamais emacs .
la source
Je pense que la principale différence est l'objectif de conception. VIM est pour UNIX en tant qu'éditeur de travail. Emacs est destiné aux hackers GNU et lisp, il a donc un élément de conception mixte.
J'utilise vim sur mon poste de travail, alors que j'aime aussi emacs.
la source
Je suis un fan d'Emacs mais j'encourage d'autres développeurs à apprendre le VI car:
J'ai remarqué plusieurs commentaires sur le démarrage de VIM plus rapidement qu'emacs. Si vous vous souciez vraiment de cela, exécutez emacs en mode serveur et alias 'emacs' en 'emacsclient'. Le client est super rapide car il ne fait qu'appuyer sur le serveur sur l'épaule et lui dire quel fichier vous souhaitez modifier. Sur MacOSX, emacsclient n'est que de 33K tandis qu'emacs est de 287M.
Je ne suis pas sûr que tout cela soit nécessaire sur le matériel moderne. Sur mon MacBook Pro (Retina 2013), emacs se charge presque instantanément lorsque je l'exécute à partir du shell. Je ne détecte aucune pause. Lorsque j'exécute Emacs.app (la version graphique), cela peut prendre 3 secondes.
La plupart des plaintes que j'entends sur emacs semblent provenir de personnes mal informées sur emacs. Ayant utilisé à la fois vi et emacs depuis 1982, je me souviens certainement d'une époque où emacs se chargeait beaucoup plus lentement que vi et utilisait la majeure partie de la mémoire physique de mes premières boîtes UNIX, mais ce n'est plus le cas et cela ne l'a pas été depuis au moins 15. 20 ans.
Une plainte que j'admets est "emacs pinkie". Cela ne m'a jamais dérangé du tout quand j'étais plus jeune. Maintenant que j'ai 58 ans, mon petit doigt est un peu douloureux en accédant à plusieurs reprises à la touche Contrôle pour les accords emacs. Cela est particulièrement vrai sur le clavier du MacBook Pro où le contrôle est déplacé d'une position vers la droite pour faire de la place pour la touche "fn". Ce n'est pas aussi ennuyeux lorsque Control est la touche en bas à gauche.
la source
J'ai d'abord été utilisateur de vim, puis je suis passé à emacs, puis à vim, maintenant j'expérimente à nouveau avec emacs.
En tant que développeurs, nous tapons beaucoup et, enfin, pour moi, se déplacer dans les tampons et les fichiers sont les plus grandes tâches répétitives, donc je veux un éditeur où je peux me déplacer rapidement!
La motivation pour expérimenter à nouveau avec emacs est que je suis tombé dessus Ctrl a mené les raccourcis clavier plus rapidement que vim, et plus facile à raisonner.
Dans vim, vous avez des modes, vous avez un mode d'insertion, un mode visuel, un mode normal, ce qui se passe lorsque vous appuyez sur quelque chose dépend du mode que vous êtes, est une approche dynamique de l'édition. Vous vous déplacez, entrez en mode insertion, éditez, sortez du mode insertion et déplacez-vous à nouveau. Je me perd souvent si je manque une presse ESC ou quelque chose comme ça.
Dans emacs il n'y a pas de mode, en gros vous appuyez sur Ctrl avec votre rose et tapez la frappe, comme Cx Cf, Cx Cs, Cx Cc. Il y a des raccourcis clavier où vous devez relâcher la touche ctrl, je déteste ceux-ci et les remplace toujours par ceux avec le contrôle enfoncé.
Je pense que l'approche emacs est plus rapide à penser et à taper, mais vim a une autre force, celle de. Ses commandes sont composables, elles ont généralement un format. Par exemple, pour supprimer une ligne que vous pouvez utiliser
dd
, pour supprimer un motdw
. Les plugins utilisent cette suppression, avec le plugin vim-surround, vous pouvez supprimer les guillemets avec ds "(supprimer le surround"), supprimer jusqu'au suivant /dt/
. Supprimer jusqu'au précédent /:dT/
et ainsi de suite. Donc, tant que vous apprenez, les choses en mouvement commencent à devenir très intéressantes.En résumé, aujourd'hui, je suis tombé que les raccourcis clavier emacs sont plus rapides pour l'édition de macro et les commandes vim sont plus puissantes pour le micro-édition
J'utilise vim depuis cinq ans donc j'édite en pensant principalement aux mots, aux lignes, à l'entourage, aux blocs, etc. se déplace pour cela
Pour terminer , je dirais que, je me soucie plus de fzf que d'emacs ou de vim, j'adorerais avoir un éditeur entièrement basé sur fzf
la source
Tout d'abord Vi (réalisation originale) non utilisée aujourd'hui. Ce que vous dites est une dérivation de Vim.
Pour étendre les fonctionnalités de Vim, vous devez recompiler Vim, pas Emacs.
Emacs a Vim en lui-même (mode viper).
Emacs nécessite généralement une installation manuelle, Vim généralement préinstallé sur tous les systèmes d'exploitation Unix (mais si vous avez un accès ssh à l'hôte en mode tramp, gagnez Vim :).
Si vous essayez Vim, vous détestez Emacs, alors commencez par Emacs en premier.
Lisez également http://www.dina.dk/~abraham/religion/vi-tutorial.html (lien descendez donc utilisez ce )
Anwer search in hxxp: //en.wikipedia.org/wiki/Editor_war
la source