Merkmale von Emacs, die Vim ergänzen?

2380
redacted

Ich verwende Vim seit einiger Zeit intensiv und arbeite sehr gerne damit. Ich lobe jedoch weiterhin für Emacs. Ich habe beschlossen, mir Emacs anzuschauen, um mein Wissen über die Unix-Editoren abzurunden (ganz zu schweigen von Emacs-Tastenkombinationen).

Aber! Ich bin glücklich, die meiste meiner täglichen Arbeit in Vim zu erledigen. Im Idealfall möchte ich (abgesehen von den Grundlagen) die Lücken betrachten, die Emacs füllen kann, oder Dinge, die er besser kann als Vim. Ich nehme an, das kanonische Beispiel ist die Lisp / Scheme-Codierung in Emacs vs. Vim.

Wo würdest du anfangen, mit Emacs zu basteln, um seine Macht wirklich zu schätzen und um eine gute Vorstellung davon zu bekommen, wie sich die Editiermethode von Vim unterscheidet und wie sich die Editoren ergänzen können? Was wäre eine gute Einführung in die gleiche Richtung?

5

4 Antworten auf die Frage

7
Trey Jackson

Welche Funktionen ergänzen sich? So ziemlich alles, was nicht gerade Textbearbeitung ist. Lesen von E-Mail, Usenet, Ausführen einer Shell, Debugger (gdb), Kompilieren, Integration der Versionskontrolle, Manpages, Aufgabenlisten / Projektplanung (org, planner), Surfen im Web, ide (CEDET), IM, IRC, Remote-Dateibearbeitung ( TRAMP) usw. Es gibt sogar dumme Sachen wie Spiele: Tetris, Schlange, Blasen, Pong.

Im Bereich der strengen Textbearbeitung erledigen sowohl Emacs als auch vi die Aufgabe, die Sie bevorzugen, ist wie das Eis, das Sie bevorzugen. Und ich stimme Richardhoskins zu : Der Viper-Modus ist wahrscheinlich der Weg, um Emacs zu erkunden, wenn Sie nicht daran interessiert sind, den ganzen Hund zu wechseln.

Hinweis: Entschuldigung, wenn eine der Funktionen in vim zur Verfügung steht, ist es schon lange her, seit ich sie verwendet habe, und ich war ein sehr einfacher Benutzer von vim.

Ich würde es zunächst empfehlen, den Viper-Modus zu verwenden. Machen Sie sich mit den Tastenkombinationen von emacs vertraut, und aktivieren Sie * dann den Viper-Modus. Andernfalls verwenden Sie am Ende "eine beschissene Emulation von vi" und nicht einen anständigen Editor, der die Tastenkombinationen von vi verwenden kann dbr vor 15 Jahren 1
6
Richard Hoskins

Sie können den Viper-Modus verwenden. Viper ist ein vi-Emulator, der einen vi-Benutzer durch 5 Ebenen führt. In jeder Ebene werden Funktionen eingeführt, während sich der Benutzer mit Emacs vertraut macht.

Stufe 1 ist fast gerade vi. Level 5 ist fast Emacs. Sie können aus Viper in gerade Emacs und wieder zurück wechseln.

Viper wird mit Emacs geliefert und ist fertig eingerichtet. Mx Viper-Modus führt es aus. Es gibt einen Einführungsbildschirm, in dem die Verwendung erläutert wird.

1
Justin Smith

Was mich von nvi / vim zu nvi / emacs gewechselt hat, weil meine jeweiligen "zwei Wörter in einer Datei ändern" / stundenlang mit dem Bearbeiten eines großen Verzeichnisbaums voller Dateien beschäftigt sind, 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 der Keybindings über Modi und Kontexte hinweg (Ausschneiden / Einfügen / Bewegung / usw. funktionieren im Minibuffer genauso wie in einem Puffer), interaktives Aktualisieren potenzieller Vervollständigungen ü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 "greift das Element auf ganz vorne auf der Liste. Ich bin frustriert über die Unbrauchbarkeit meines Window Managers oder Firefox, da ich jetzt 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 reflektierenden Sprache ist das Programm selbst die genaueste Dokumentation, die Sie haben können.

0
Chow

Was mich wirklich dazu zwang, von Vim zu Emacs zu wechseln, war der Org-Mode, der eine flexible persönliche Organisation oder Veröffentlichung ermöglicht. Es ist ein Outliner, und ich glaube nicht, dass es etwas gibt, was Vim nahe kommt. Ich verwende auch ausgiebig R und Latex, und die integrierte Unterstützung für beide ist (meiner Erfahrung nach) robuster als die Integration in Vim. Ich mag die Vim-Latex-Suite, aber Emacs scheint mächtiger zu sein.

Ich mag Vim wirklich gern, aber jetzt verwende ich den Vimpulse-Modus udner EMACS, eine Erweiterung des Viper-Modus, um ihn vim-artig zu machen. Einer der Vorteile von vimpulse gegenüber der Verwendung von regulärem vim ist, dass Sie unter "Bearbeitungsmodus" mehr tun können. Wenn Sie schnelle Bearbeitungen vornehmen möchten, können Sie die Tastenkombinationen von emacs verwenden, ohne den Modus wechseln zu müssen.