Was mich von nvi / vim auf nvi / emacs gewechselt hat, während meine jeweiligen "zwei Wörter in einer Datei ändern" / "Stunden damit verbringen, einen riesigen Verzeichnisbaum voller Dateien zu bearbeiten", war die Integration von Unterprozessen. In der Lage zu sein, einen Textbereich in einem Interpreter mit einem Tastendruck auszuwerten, automatisch zu Fehlern zu springen, um sie zu korrigieren, und den Interpreter die ganze Zeit über laufen lassen, war äußerst hilfreich.
Andere Dinge, die ich heute vermisse, wenn ich emacs nicht verwende: Konsistenz von Keybindings über Modi und Kontexte hinweg (Ausschneiden / Einfügen / Bewegung / usw. funktionieren im Minibuffer genauso wie in einem Puffer), interaktives Aktualisieren potenzieller Abschlüsse über den Ido-Modus (" Cx b "zeigt mir eine Liste von Puffern an, zu denen ich wechseln könnte. Wenn Sie einen einzelnen Buchstaben" .c "eingeben, werden alle, die keine .c enthalten, irgendwo im Namen versteckt." Cs "dreht die Liste," Enter "wählt das Element aus ganz vorne auf der Liste: Ich bin frustriert über die Unbrauchbarkeit meines Window Managers oder Firefox, da ich nun auf diese Weise den Kontext wechseln kann (alles andere ist unbeholfen).
Ein weiterer Vorteil ist meiner Meinung nach der vielfältige Vorteil, dass die meisten Emacs in Emacs LISP implementiert werden. Das bedeutet, dass emacs lisp als Erweiterungssprache verwendet werden kann und über die Funktionen verfügt, die für eine echte Programmierung erforderlich sind. Dies bedeutet, dass die Erweiterungssprache einigermaßen effizient und skalierbar bleibt. Das bedeutet, dass, wenn Menschen Emacs erweitern, um ihre Produktivität zu verbessern, ihre Funktionen trivial in die offiziellen Emacs integriert werden können. Im Laufe der Zeit bedeutet dies, dass emacs von der Community auf einer Skala entwickelt wurde, die mit keinem anderen Projekt für freie Software übereinstimmt (obwohl Firefox möglicherweise irgendwann xul / userscript einholt). Da elisp eine stark reflektierende Sprache ist, kann ich auf interaktive Weise Details zur Funktionalität des Editors abfragen. In einer ausreichend reflektierenden Sprache ist das Programm selbst die genaueste Dokumentation, die Sie haben können.