797 Stimmen

Unterschiede zwischen Emacs und Vim

Ohne in eine religiöse Diskussion darüber einzusteigen, warum das eine besser ist als das andere, was sind die praktisch Unterschiede zwischen Emacs und Vim? Ich möchte entweder das eine oder das andere lernen, aber mir ist klar, dass die Lernkurve für beide hoch ist und ich kann mich nicht entscheiden. Ich habe noch nie einen Editor dieser Art benutzt (ich habe immer IDEs benutzt), also ist alles, was einem Neuling hilft, ein Plus.


Bevor ein Flammenkrieg beginnt: Ich frage nicht, was besser ist, sondern was die Unterschiede zwischen den beiden sind. Ich möchte eine Zielsetzung Vergleich.

6 Stimmen

Wenn Sie einen Mac (OSX) verwenden, werden Sie feststellen, dass viele grundlegende Emacs-Befehle zur Cursorbewegung so gut wie überall funktionieren. (Zum Beispiel funktionieren sie hier, wo ich diesen Kommentar in die Webseite tippe.) Für Mac-Benutzer ist es also systemweit von Vorteil, zumindest die folgende Teilmenge von emacs zu lernen: ^A ^B ^D ^E ^F ^K ^L ^N ^O ^P ^T ^V ^Y

2 Stimmen

@JamesAnderson: Meiner Erfahrung nach ist das Gegenteil der Fall. Ich benutze vim seit 2,5 Jahren und bin dann zu emacs gewechselt. Den Emacs-Leuten ist es meistens egal... "was auch immer für dich funktioniert". Hier ist was ,salespitch sagt in #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.

7 Stimmen

Emacs ist definitiv ein großartiges Betriebssystem, dem aber nur ein anständiger Editor fehlt.

592voto

James Brooks Punkte 3823

(der folgende Text ist meine Meinung, er sollte nicht als Tatsache oder Beleidigung verstanden werden)

Von Emacs erwartet man, dass man ihn rund um die Uhr geöffnet hat und in dem Programm lebt; fast alles, was man tut, kann man von dort aus erledigen. Man schreibt seine eigenen Erweiterungen, benutzt es für Notizen, Organisation, Spiele, Programmierung, Shell-Zugang, Dateizugriff, Musikhören, Web-Browsing. Es dauert Wochen und Wochen, bis man damit zufrieden ist, und dann lernt man ständig neue Dinge dazu. Sie werden sich ärgern, wenn Sie keinen Zugriff darauf haben und ständig Ihre Konfiguration ändern müssen. Sie werden nicht in der Lage sein, andere Emacs-Versionen einfach zu benutzen und er wird nicht einfach installiert. Er benutzt Lisp, was großartig ist. Du kannst ihn zu allem machen, was du willst. (irgendetwas, überhaupt)

Bei Vim ist er fast immer vorinstalliert. Es ist schnell. Sie öffnen eine Datei, bearbeiten sie kurz und beenden sie dann. Sie können mit der Grundeinstellung arbeiten, wenn Sie auf dem Rechner eines anderen arbeiten. Es ist nicht ganz so editierbar, aber immer noch viel besser als die meisten Texteditoren. Er erkennt, dass man die meiste Zeit liest/bearbeitet und nicht tippt, und macht diesen Teil schneller. Sie leiden nicht unter _emacs pinkie_ . Es ist nicht so ärgerlich. Es ist leichter zu lernen.

Auch wenn ich Emacs jeden Tag benutze (und es liebe), würde ich mich für vim entscheiden, wenn Sie nicht vorhaben, viel Zeit mit dem Programm Ihrer Wahl zu verbringen

181 Stimmen

W.r.t nicht zur Verfügung stehen: Ich schlage vor, dass Sie Ihre .emacs und .emacs.d in ein Versionskontroll-Repository stellen, so dass Sie Ihr perfektes Emacs-Setup einfach durch Auschecken erhalten.

13 Stimmen

Sowohl emacs als auch vim können unter den oben beschriebenen Problemen leiden: beide können so konfiguriert werden, dass sie im Vergleich zu ihrer ursprünglichen Form nicht mehr zu erkennen sind. Ich unterstütze auch die Verwendung eines vcs.

12 Stimmen

An welchen Systemen arbeiten Sie, @Radu? Ich habe in den 2010er Jahren noch nie ein reales System gesehen, das über echte vi anstelle von vim mit diesem verknüpft.

167voto

Svend Punkte 7527

Vim ist keine Shell. Und er kommuniziert nicht gut mit Unterprozessen. Dies ist fast durch Design, während in Emacs diese Elemente durch Design enthalten sind. Das bedeutet, dass einige Dinge, wie das Einbetten eines Debuggers oder eines Interpreters (was eine Art IDE ergibt), in Vim schwierig ist.

Außerdem werden Emacs-Tastenkombinationen hauptsächlich über Modifikatoren aufgerufen, und natürlich ist die Vim-Oberfläche bekanntlich modal, was den Zugriff auf eine absurde Anzahl von Direkttasten zur Manipulation ermöglicht.

Emacs war früher der einzige der beiden Editoren, der programmierbar war, und während Vim eine Menge merkwürdiger Ebenen für seine Programmierbarkeit hat, ist Vim mit der Hinzufügung von Python- und Ruby-Bindungen (und mehr, ich habe es vergessen) auch auf die meisten Arten programmierbar, die man sich wünscht.

Ich benutze Vim, und ich bin ziemlich zufrieden damit.

11 Stimmen

Kleines Update: Vim unterstützt seit Version 8.0 und 8.1 eine viel bessere Kommunikation mit Unterprozessen und hat sogar Terminalpuffer eingeführt, so dass er sich in dieser Hinsicht dem Emacs etwas annähert.

135voto

Rook Punkte 57113

Vim:

  • besser als einfacher Editor (weniger Tasten für einfache Aufgaben erforderlich)
  • aktivere Skripting-Gemeinschaft - interne Sprache: vimscript
  • ein zentrales Repository für Skripte, Plugins, Farbschemata, ...
  • auch erweiterbar in Python, Ruby
  • portabel gemacht werden kann (emacs hat damit einige Probleme)

Emacs:

  • standardmäßig nicht modal (die meisten heutigen Editoren haben diesen Ansatz gewählt). Allerdings gibt es Böse-Modus die das Verhalten von vim emuliert.
  • mächtigere Sprache zur Erweiterung (elisp ist eine vollwertige Sprache, und in emacs kann man praktisch alles umdefinieren, während man in vim keine eingebauten Funktionen des Editors umdefinieren kann. Nachteilig ist, dass vimscript den heutigen dynamischen Sprachen relativ ähnlich ist, während elisp so gut wie nichts ähnelt)
  • ausbaufähiger
  • Hervorragende Unterstützung für GNU-Werkzeuge (die ganze Palette)

Ich persönlich bevorzuge vim - es ist klein, tut, was es tun soll, und wenn ich eine vollwertige IDE möchte, öffne ich VS. Der Ansatz von Emacs, ein Editor zu sein, der eine IDE (oder sollte ich sagen, ein Betriebssystem) sein will, es aber nicht ganz ist, ist IMHO überholt. Früher machte es Sinn, einen E-Mail-Client, einen FTP-Client, Tetris, ... und so weiter in einem Paket (Emacs) zu haben ... heute nicht mehr.

Beide sind jedoch ein Thema religiöser Diskussionen unter den Programmierern und Superuser-Community-Benutzern, und in dieser Hinsicht eignen sich beide hervorragend zum Auslösen von Flamewars, wenn sie in Kontakt gebracht werden (im selben Satz / in derselben Frage).

48 Stimmen

"besser als ein Redakteur" ist ziemlich vage. Ich würde gerne wissen, warum das so ist.

47 Stimmen

@Allen - Was ist daran vage? Ich treffe selten Benutzer von vim und emacs, die ein Problem mit dieser Aussage haben. Sogar Hardcore-Emacs-Benutzer akzeptieren sie normalerweise als Tatsache. Haben Sie beide Editoren benutzt? Ich glaube, es ist relativ offensichtlich, dass vim einen Vorteil bei den Textbearbeitungsfunktionen hat.

40 Stimmen

Ich kann nicht glauben, dass jemand das als Tatsache akzeptiert. Als langjähriger Benutzer sowohl von emacs als auch von plain VI habe ich vim ein paar Mal benutzt - aber "besser als ein Editor" muss meiner Meinung nach emacs sein, wenn auch aus keinem anderen Grund als einer weitaus größeren Auswahl an Dur- und Moll-Typen, die Ihnen beim Tippen helfen.

63voto

Senthil Kumaran Punkte 50813

Wenn Sie nach einer objektiven Analyse der beiden Editoren suchen, sollten Sie sich mit ihren Ursprüngen und der Philosophie hinter ihren jeweiligen Entwürfen befassen. Überlegen Sie, welcher Editor besser zu Ihnen passt, und lernen Sie ihn (und lernen Sie ihn und lernen Sie ihn, denn es dauert seine Zeit, bis Sie seinen wahren Nutzen im Vergleich zu einer IDE entdecken). Eine Einführung in die Display-Bearbeitung mit Vi wurde von Bill Joy und Mark Horton geschrieben, und er erklärt, warum er sich für ein modales Design und die Gründe für verschiedene Tastenanschläge entschieden hat (es hilft mir, mich daran zu erinnern, dass CTRL-W +W (wechselt zum nächsten W und es wird dasselbe für CTRL W+ CTRL W gemacht, nur für den Fall, dass Sie die CTRL-Taste länger gedrückt halten.

Hier ist ein Link zu Emacs-Zeitleiste und hat den Verweis auf Multics Emacs Papier. Hier ist das RMS-Papier über Emacs Ich sehe die Betonung auf einem programmierbaren Texteditor (sogar schon 1981 und früher).

Ich habe die emacs-Papiere nicht gelesen, aber das vi-Papier von Bill Joy habe ich ein paar Mal gelesen. Beide sind alt, aber Sie werden trotzdem die Philosophie verstehen und vielleicht das aktuelle Werkzeug verwenden (vim 7.x oder emacs 25?)

Bearbeiten: Ich vergaß zu erwähnen, dass die Lektüre dieser beiden Papiere Geduld und Vorstellungskraft erfordert, da man sich beim Lesen in eine andere Zeit zurückversetzt fühlt. Aber das ist es wert.

55voto

Yawar Punkte 10588
  1. Vim war immer schneller zu starten als Emacs. Ich will damit sagen, dass auf jeder Maschine eine Standardinstallation von Vim schneller startet als eine Standardinstallation von Emacs. Und ich neige zu der Annahme, dass Vim nach einer moderaten Anpassung beider Programme immer noch schneller startet als Emacs.

  2. Danach war der andere praktische Unterschied die Modi von Emacs. Sie erleichtern das Leben ungemein beim Bearbeiten von XML, C/C++/Java/whatever, LaTeX und den meisten gängigen Sprachen, die Sie sich vorstellen können. Sie sorgen dafür, dass man den Editor für lange Sitzungen offen halten und arbeiten möchte.

Alles in allem würde ich sagen, dass Vim Sie für kurze, schnelle Editieraufgaben anzieht, während Emacs Sie dazu ermutigt, für lange Sitzungen einzutauchen.

1 Stimmen

Ich glaube nicht, dass Modi das Leben leichter machen, ganz im Gegenteil. Und Larry Tesler sieht das genauso .

3 Stimmen

Wie helfen die Modi von Emacs beim Programmieren? (Ich bin neu...)

6 Stimmen

Vor langer Zeit bin ich von vi zu emacs gewechselt, und zwar aus vier Gründen: (a) ein Klick, um zum nächsten Compilerfehler zu gelangen, (b) gdb-Integration, (c) grep und find-grep. Ist es jetzt möglich, diese Dinge in vim zu tun?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X