Frage

Vorne rechts:Ich tun nicht starten wollen einen religiösen Krieg.

Ich habe verwendet vi für, solange ich mich erinnern kann, und die paar Male, die ich versucht habe zu pick-up Emacs Ich habe so verloren, dass ich schnell aufgegeben.Viele Menschen finden Emacs sehr mächtig, aber.Die Programmierbarkeit ist etwas legendär.Ich bin in Erster Linie zu tun Solaris+Java-Entwicklung, und ich möchte eine einfache Frage stellen:wird meine Produktivität erhöhen, wenn ich Zeit investieren immer in meinem Kopf herum Emacs?Ist die Funktionalität, die es bietet über Vim werde bezahlt werden zurück in die Produktivität erhöht, in einem angemessenen Zeitrahmen?

Wiederholen:Ich glaube nicht, dass ein "mein editor ist besser als deins" zu beantworten.Ich will nur ein ja oder Nein Antwort auf die Frage, ob es sich lohnt, zu investieren oder nicht.Wird meine Produktivität wirklich steigern?

War es hilfreich?

Lösung

Ich bevorzuge emacs, vi, aber ich werde wohl in beide.

Es gibt einige Dinge, die Sie tun können in emacs, dass machen es mehr leistungsstarke als vi, aber nicht alle von Ihnen sind sogar der Programmierung im Zusammenhang.(Sie können E-Mail senden oder Lesen Sie Neuigkeiten aus vi?Nein, aber who cares?) Wenn Sie bequem mit lisp (ich bin nicht), könnten Sie in der Lage sein zu schreiben, add-ons und-Modi und Zeug, um Ihr Leben einfacher machen, aber das ist nur wahrscheinlich syntax Färbung und Klammer-matching-und eye-candy wie, dass.

Ich werde aufhören zu Wandern jetzt.Ihre Produktivität erhöhen die Verwendung von emacs?Nein.

Update:Siehe mein Kommentar unten.Seit ich dies geschrieben, ich haben kommen Sie über Möglichkeiten, die Verwendung von emacs hat mich produktiver als mit vi.

Andere Tipps

[Disclaimer: persönlich, Ich bevorzuge Vim.Haftungsausschluss-disclaimer:Lesen Sie weiter.]

Vim zeichnet sich durch die kleinen:durch Bewegung und Aktion separate Konzepte und der Bereitstellung von Einrichtungen für komplexe Wiederholungen, die Sie durchführen können, unglaublich leistungsstarke editing-Vorgänge in nur einer kurzen Abfolge von Tastenanschlägen.Sie können ganz einfach Dinge tun, in Vim in den normalen Gang der Bearbeitung erfordern würde, dass Sie auf den drop-down to scripting in Emacs.Auch die meisten der macht, die Sie verwenden, kommt aus der box, so dass selbst wenn Sie umfangreiche .vimrc die Anpassungen, die Chancen sind Sie in der Lage sein, produktiv zu arbeiten mit alle Vim-installation.

Emacs zeichnet sich durch die großen:durch die Zuordnung aller seiner UI-Konzepte direkt zu grundlegenden Konstrukte und Konzepte in Elisp, wird es sehr einfach zu weltweit einzuführen, Funktionen für bestimmte Arten von Dateien oder Umstände, wodurch Emacs etwas wie eine text-basierte und vieles mehr structuredly programmierbare form von Excel.Dies setzt Voraus, dass Sie gehen zu verbringen viel Zeit die Anpassung Ihrer Umgebung für die persönlichen Bedürfnisse und Vorlieben.Natürlich Emacs tut sein bestes tun, um machen es leicht, nach innen zu bleiben, die eine Umwelt für alles und alles, was Sie tun möchten.

Letztlich weder überlegen ist.Sie bieten unterschiedliche Stile, und je nach Ihren Vorlieben, der eine oder andere wird Ihren persönlichen Bedürfnissen und Denkweise besser.Es ist immer hilfreich zu wissen, dass beide (und mehr Editoren), natürlich.Aber Sie sind nicht zu deutlich produktiver so oder so.

vi ist ein Küchenmesser.

vim ist eine wirklich schöne, scharfe, ausgewogene Kochmesser.

Emacs ist ein Lichtschwert.

Die meisten der Zeit, mein job verlangt von mir zu fein hacken Gemüse.Gelegentlich habe ich auf eine ganze Armee von Robotern.

Ich habe mit Emacs für 20 Jahre.Ich tippe in Emacs jetzt mit einem widget namens "It' s All Text" das lässt mich zu saugen, text in und aus der text-Boxen in Firefox.Ich kann gehen, wirklich schnell in Emacs.Ich bin deutlich weniger produktiv, ohne es zu sein.

Dies ist sehr fraglich, aber ich denke auch, dass das erlernen von Emacs kann Ihnen beibringen, eine überraschende Menge über die Programmierung.

Je nachdem, wie Sie den code, den Sie Mai sehen eine Steigerung der Produktivität.Zum hintergrund, ich bin auch eine lange Zeit, vim-Benutzer, aber ich habe gelernt, emacs vor etwa 2 Jahren, und jetzt verwenden Sie austauschbar.

Was trieb Sie mich zu dem Punkt, der eigentlich lernen emacs war seine nützliche Fähigkeit zu haben, eine große Anzahl von Dateien gleichzeitig öffnen, und leicht Schalter zwischen Ihnen.Ich war in der Mitte der Einführung einer Funktion, die Hinzugefügt und gerührt, eine große Anzahl von Klassen.(Das C++ war, so gab es in der Regel zwei Dateien pro Klasse.) Da war ich noch zu verdichten, die Schnittstelle, die ich normalerweise in der Mitte das aktualisieren einer Datei, wenn ich merke, dass ich mich ändern musste eine andere.

Mit gvim, es war am einfachsten, öffnen Sie ein neues Fenster für jede Datei, die wurde langsam schwerfällig.Mit Emacs, aber es war einfach so öffnen Sie eine neue Datei im gleichen Fenster (Strg-x, Strg-f).Sobald Emacs hat eine Datei zu öffnen, es ist sehr einfach zu Schalter zurück und her zwischen der open-Puffer (Strg-x, Strg-b).

Nehmen, dass ein Schritt weiter, ein single-emacs-Sitzung öffnen, viele Fenster, so dass zusätzlich die Aufteilung der Fenster vertikal, könnte ich entscheiden, ohne Unterbrechung der Arbeit auf eine Datei zu öffnen, eine andere daneben, dass ich effektiv arbeiten side-by-side, während immer noch halten jedes Fenster im Standard 80-Zeichen Breite.

Es gibt noch einige Dinge, die ich leichter in vim (z.B.block-Modus auswählen, einfaches makro aufzeichnen, diff-Modus), und die Dinge, die sind leichter in Emacs (Zeilenausrichtung, Datei/Puffer-management, Fenster/screen management).Daher finde ich, dass ich abwechselnd zwischen den beiden (und manchmal auch mit beiden gleichzeitig), je nach Aufgabe, die ich Bearbeiten erwarten.

Wenn Sie noch unsicher sind, würde ich vorschlagen, Sie versuchen es.Laufen Sie durch die Emacs-tutorial und verwenden Sie es dann, um code zu schreiben für ein morgen-oder ein Tag, stützte sich stark auf die Hilfe.Wenn Sie immer noch nicht, was Sie sehen möchten, bleiben Sie mit vim.Unabhängig davon, was der editor bringt auf den Tisch, Ihre Vertrautheit und das wissen, das Werkzeug wird mit Abstand der wichtigste Faktor in Ihrer Produktivität.

Ich glaube nicht, dass ein Heiliger Krieg, aber bitte beantworten Sie eine sehr subjektive Frage mit einer ja/Nein-Antwort.

Ja, Sie können sehen eine Steigerung der Produktivität, da der leistungsstarke Funktionalität.

Nein, Sie werden nicht sehen eine Steigerung der Produktivität, da die Muster und Metaphern verwendet, die in emacs kann nicht align mit Ihnen Gehirn.

Die kurze Antwort auf deine Frage ist "JA".Mehr detail unten.

Ich benutzte vi fast ausschließlich von etwa 1980 bis 1991.Die einzige Zeit, die ich nicht verwenden, vi war als ich war, den Umgang mit einer minimal-Installation von Unix war zu klein, um zu zählen vi, so musste ich zurück zu ed, die ist die kleinste Teilmenge von Bearbeitungs-Funktionen, die den ursprünglichen vi gebaut wurde, auf der Oberseite.

Ab etwa 1985 auf, anderen Programmierern, wo ich arbeitete, waren ständig mit einem Loblied auf emacs.Aber jedes mal, wenn ich versuchen würde, es zu lernen, würde ich nicht sehr weit kommen.Ich würde eine Stunde lang gehen durch die emacs-turorial (C-h t) und durch das Ende von allem, ich würde wissen würden, wie zum einfügen und ändern von text und bewegen Sie den Bildschirm.Ich könnte so viel mehr tun mit vi als das, was ich gelernt hatte, in dieser Stunde mit emacs, konnte ich nicht den Schalter.Drei Monate später würde ich die Zeit finden, verbringen noch eine Stunde und ich hatte am Ende gehen durch die gleiche material.Emacs hat eine Lernkurve, die mit dem Großbuchstaben "L".Es war nicht, bis ich hatte einen Vertrag, wo alle anderen verwendeten emacs, dass ich schließlich beschlossen, ich brauchte mehr als eine Stunde zu einem Zeitpunkt zu lernen.Nachdem die Ausgaben ein wenig mehr als einen Tag nichts zu tun, aber die Arbeit durch das tutorial und die Dokumentation, ich habe endlich den Punkt, wo ich tun konnte, Dinge, die mit emacs, dass ich nicht mit vi.Von da an habe ich nie mehr zurück wollte.Ich kann immer noch das Typ vi-Befehle in meinen Schlaf, aber ich kann so viel mehr mit emacs.

Verstehen, dass ich den Vergleich von emacs und vi, nicht vim.Ich habe nie gelernt, den Erweiterungen, die vim Hinzugefügt hat, vi, und es ist wahrscheinlich, dass viele von Ihnen sind features, kopiert von emacs.Wenn dem so ist, und wenn Sie bereits versiert im Umgang mit vim, emacs, kann nicht halten, wie viele Vorteile für Sie.

Unter den Dingen, die ich verlasse mich auf alle die Zeit in emacs sind:

  1. Wenn Sie emacs verwenden, alles als text behandelt.Dies bedeutet, dass Sie manipulieren können keine Daten im Puffer mit ziemlich viel die gleichen Befehle.Und in Fällen, in denen eine Puffer in einen Modus, in dem einige der standard-Befehle nicht verfügbar sind, können Sie den text kopieren, um zu einem anderen Puffer läuft im fundamentalen Modus und verwenden die standard-Befehle gibt es.

  2. Emacs bietet eine multi-"Fenster" Umgebung displayable auf ein Zeichen-Zell-terminal.In den Tagen vor dem Bitmap-Grafiken und echte windows, emacs geschrieben wurde, um zu simulieren, Fenster-wie Verhalten Sie sich nichts aber ascii-Zeichen und cursor-Positionierung.Sie denken wahrscheinlich, "Das ist alte Geschichte.Warum sollte sich jemand kümmern, der heute?" Ich benutze immer noch diese Fähigkeit jeden Tag.Ich nutze ein webhosting-Unternehmen, das es mir erlaubt SSH-Zugang.So kann ich log-in einem Linux-host über das Internet und shell-Befehle ausführen.Während das ist schon ziemlich mächtig, es ist viel kraftvoller in der Lage sein, zu teilen mein terminal-emulator, der bis in die "windows" - die Verwendung von emacs, führen Sie die Muscheln in mehreren dieser "windows", " Bearbeiten-Dateien in andere Fenster, und anzeigen und Bearbeiten von Verzeichnissen, in noch anderen "Fenstern".

    Eigentlich, wenn ich sagte, dass "Fenster" im vorherigen Absatz, die ich wirklich als "Puffer".Emacs' Zeichen Zelle-emulation von windows ist eine Art der Aufteilung der Bildschirmfläche.Einen emacs-Puffer ist im Zusammenhang mit Inhalt (eine Datei, ein bash-shell, ein Verzeichnis, beliebigen text-auch nicht mit einer Datei verknüpft sind, usw.) die kann oder kann derzeit nicht angezeigt werden.Um zu sehen, was in einem Puffer, Holen Sie ein Fenster und sagt, was Puffer, die Sie sehen wollen.So können Sie die Arbeit auf viel mehr Dinge, als Sie den Raum haben, auf dem Bildschirm angezeigt.Es ist in etwa Analog zu dem, was Sie in einer modernen Bitmap-Grafiken, GUI, wenn Sie iconify/de-iconify ein Fenster.

  3. Ich habe bereits angedeutet, die Tatsache, dass Sie können führen Sie eine shell innerhalb einer emacs-Puffer.Sie können so viele Puffer ausführen von shells, wie Sie wollen.Sie können kopieren und einfügen von text hin und her zwischen einer shell-Puffer und ein text-Datei, oder vergleichen Sie ein Teil von text zwischen einer shell-Puffer und ein text-Datei mit der exakt gleichen Tastendruck-Sequenzen, die Sie verwenden würden, um text zu kopieren oder vergleichen von text zwischen zwei text-Dateien.Tatsächlich gilt dies für die meisten Arten von Puffer, nicht nur shell-Puffer und Puffer, die im Zusammenhang mit Dateien.

  4. Wenn Sie emacs " - Befehl, um eine Datei zu öffnen, aber das, was Sie ausgewählt haben, ist eigentlich ein Verzeichnis ist, wird der Puffer läuft in dired (directory editor) - Modus.In diesem Modus, einem einzigen Tastendruck öffnen, was auch immer die cursor ist momentan zeigt an, sei es eine Datei oder ein Unterverzeichnis.In einem Puffer im dired-Modus ist ein Datei-manager - ein Charakter-Zell-terminal orientierte analog zum Finder auf dem Mac oder Windows-Explorer.

  5. Einer der emacs-Funktionen verwende ich fast ständig "compare-Fenster".Ich sehr bevorzuge diese Kommando-Zeile "diff" - oder GUI-Vergleich-tools, wie, was gebaut in für Eclipse.Diff-oder Eclipse-vergleichen Sie ganze Dateien, und zeigen Sie die Linien unterscheiden.Aber was passiert, wenn Sie zwei verschiedene Linien, die sehr ähnlich Aussehen?Betrachten Sie das folgende:

    Was ist der Unterschied zwischen dieser Linie und der andere nicht?

    Was ist der Unterschied zwischen dieser Linie und der andere nicht?

    Wie lange würde es dauern, Sie finde den Unterschied?(Hinweis:ASCII-und Unicode-Apostroph Blick ziemlich gleich.)

    Im Gegensatz zu diff und Eclipse, die nur die Zeilen anzuzeigen, die sich voneinander unterscheiden, emacs' "compare-Fenster" - Funktion ist interaktiv.Positionieren Sie den cursor in die jeweils zwei side-by-side windows an einem Punkt, wo das Fenster Inhalte sind die gleichen.Führen Sie "compare-Fenster", und den cursor in jedes Fenster wird auf dem ersten Zeichen, das unterscheidet sich.Positionieren Sie den cursor in eines der Fenster an den Punkt, wo es das gleiche wie die anderen Fenster, und führen Sie erneut "compare-Fenster" zu finden, den nächsten Unterschied.Dies macht es einfach zu vergleichen subportions von Dateien.

    Eine andere Sache, die ich regelmäßig verwenden "compare-Fenster" für den Vergleich von Prüfsummen.Viele software-Projekte verteilen tarball von der Anwendung auf eine Seite, die auch ein MD5-hash des Tarballs.Also, wie vergleichen Sie die MD5-Hashs, die auf der Seite Verteilung mit dem MD5-hash berechnet aus der heruntergeladenen Datei.Emacs macht dies trivial.

    Kopieren Sie zuerst den MD5-hash von der Webseite in eine neue emacs-Puffer.Dann, nach dem herunterladen der .tar.gz -Datei ausführen:

    md5sum downloadedfile.tar.gz

    in einem shell-Puffer.Mit diesen zwei Puffer angezeigt in side-by-side-emacs windows, positionieren Sie den cursor in jedes Fenster an den Anfang der Prüfsumme und führen Sie "compare-Fenster".Wenn diese identisch sind, wird der cursor in jedem Fenster platziert werden am Ende eines jeden Prüfsumme.

  6. In dem vorherigen Punkt, ich gab das Beispiel ausführen "compare-Fenster" auf den Linien:

    Was ist der Unterschied zwischen dieser Linie und der andere nicht?

    Was ist der Unterschied zwischen dieser Linie und der andere nicht?

    "compare-Fenster" wird, lassen Sie den cursor auf den Apostroph in jeder Zeile.So, jetzt wissen Sie, welche Zeichen unterscheiden.Aber welche Zeichen sind Sie?Geben Sie die zwei Tastatureingabe CTRL-x =, und emacs zeigt das Zeichen, dessen ascii-Wert in oktal, dezimal und hexadezimal, die Zeichen offset vom Anfang der Datei, und das Zeichen offset vom Anfang der Zeile.Da ASCII eine 7-bit-Codierung, die alle ASCII-Zeichen haben Ihre high-order bit ausgeschaltet.Sobald Sie sehen, dass der Wert der ersten Apostroph ist 0x27 und das zweite ist, 0x92, es ist offensichtlich, dass die erste ist in der ASCII-Zeichensatz und der zweite ist nicht.

  7. Emacs war eine der ersten IDEs, vielleicht der erste.Es verfügt über Modi für bestimmte Sprachen.Ich finde Sie praktisch, für die Verhängung von konsistenten Einrückung auf mein code, damit es besser lesbar.Es gibt auch integrierte Funktionen für das kompilieren und Debuggen von code.Ich glaube nicht, das kompilieren von Funktionen, dass viel, weil, wenn ich Schreibe für eine kompilierte Sprache wie C, war ich gewohnt, dass an einem shell-prompt.Die debugging-Funktionalität war sehr schön für C und C++.Es integriert gdb mit dem editor so, dass Sie ziemlich viel die gleiche Funktionalität wie die debugging-Fähigkeiten, die nun in Eclipse, aber verschwendeten bildschirmimmobilien der modernen GUI-basierten IDEs tun.Theoretisch ist die debugger-integration sollte leicht sein, um es für praktisch jede andere Sprache, aber ich habe nicht überprüft, um zu sehen, was in anderen Sprachen funktioniert es mit heute.

  8. Emacs ermöglicht Sie zu erstellen Sie Makros, indem Sie ihm mitteilen, Wann es beginnen, sich zu erinnern, was Sie eingeben und wenn zu stoppen.Dies ist extrem leistungsfähig für Aufgaben, die Sie Häufig verwenden.

  9. Emacs ist unendlich erweiterbar, wenn Sie wissen, Lisp.Aber obwohl ich habe nie gelernt, Emacs Lisp, finde ich immer noch Emacs, eines der mächtigsten Werkzeuge, die ich je benutzt habe.

  10. Emacs Schlüssel Bindungen.Ich werde die erste zugeben, dass Emacs Schlüssel Bindungen zu saugen.Aber es ist so viel mächtiger als alles, was ich verwendet habe, bin ich bereit zu setzen mit dem Schlüssel-Bindungen.

  11. In eine humorvolle Ader, die vor Jahren Emacs' Autor Richard Stallman (auch Urheber der GPL, der Gründer des GNU-Projekts und Gründer der FSF) verspottete diejenigen, die Behandlung von vi vs.emacs als einen Heiligen Krieg.Er erfand die Figur "St. IGNUcius" der Kirche von Emacs.In diesem Deckmantel, Stallman, sagte: "Manchmal Fragen mich Leute, ob es eine Sünde in der Kirche von Emacs zu verwenden, die anderen text-editor vi.Nun, es ist wahr, dass vi-vi-vi der editor der Bestie, aber eine Kostenlose version des vi ist keine Sünde, es ist eine Buße." (Siehe http://stallman.org/saint.html.Es ist auch ein süßes Foto von ihm, aber da ich bin neu in StackOverflow, es wird nicht lassen Sie mich senden Sie mehr als eine URL.Also, gehen Sie zu der gleichen Domäne, sondern Holen Sie die Datei saintignucius.jpg)

Ich verwendet, Vim für 10 Jahre bis zum eintauchen in Emacs-vor 2 Jahren.Ich habe ein ziemlich frischer Erinnerung, wie meine Produktivität Kurve verändert im Laufe der Zeit.

Meine Punkte sind alle bedingten, YMMV abhängig von Ihren stärken und Erfahrungen.

Wenn Sie verwendet haben, Unix-und der Befehl Linie lang genug, dass Sie sind vertraut mit C-a, C-e, C-n, C-p, C-k, C-y, etc, wie Sie die Funktion auf der Schale, es wird nicht lange dauern, um den übergang zu verwenden die gleichen Bindungen (die Standardwerte) in Emacs.Vor kurzem habe ich entdeckt, dass XCode verwendet diese Bindungen als gut.

Wenn Sie bequem mit einem der immer ausgeführt wird, editor, tendenziell Puffer (wie würden Sie browser-tabs) und damit das Leben in der Anwendung (wie würden Sie mit Web2.0-Anwendungen im browser), Emacs wird wahrscheinlich zeigen Sie sofortige Produktivitätsverbesserungen.

Wenn Sie arbeiten in der Regel in Projekten von vielen Dateien im Zusammenhang mit dieser Ausdauer zahlt sich einige zusätzliche Vorteile bei der Aufrechterhaltung Kontext zu diesem Puffer.Jeder Puffer contexted an seine Datei öffnen ermöglicht für die bequeme Nutzung verschiedener productivity-boosting tools für Ihr Projekt (wie grep-suchen, eshell, run python und Schleim).Dies gepaart mit der Vervollständigung des Textes, yasnippets, etc zu suchen beginne einen winzigen Bruchteil wie eine IDE obwohl ad-hoc und stark individualisiert durch Ihre Konfiguration.Dies ist, abgesehen von den mehr zivilisierten Emacs IDE-ähnliche Dienste, wie die EZB.

Meine Produktivität nahm einen Treffer zunächst, wie ich tippte "jjjkkk" ständig Esc-Esc-Esc-Esc für die erste Woche oder so.Die folgende Woche habe ich vorsichtig begonnen, mit Hilfe der rechten navigation keys.Dann entdeckte ich die Konfigurations-Datei...Ehrlich gesagt, wenn ich hatte Emacs-Starter-Kit von Anfang an, hätte ich gesagt, meine Produktivität langsam arbeitete wieder die Parität über die 3.-4. Woche, aber ich habe Sie unten das config-file rabbit hole.Ein Kollege von mir, obwohl, hat gerade gewechselt von vim zu emacs und er schnappte sich einfach das Starter-Kit, und er ist auf seine Weise.Erste Woche, und er scheint bequem und genießen Sie all die überraschung nutzen (das Gefühl wird wahrscheinlich ein Jahrzehnt).

Schließlich, wenn Sie Fehler machen, werden Sie sofort gewinnen Produktivität (und Vertrauen) von dem Runden töten/yank-ring und undo-ring.Auch bin ich persönlich ein fan von bestimmten region wieder rückgängig machen.

Meine kurze Antwort ist ja, es lohnt sich, 3-4 Wochen von einer abnehmenden Produktivität-Treffer zu lernen Emacs.Selbst wenn Sie entscheiden, dass Sie lieber eine schlanke unix-Dienstprogramm combo über Emacs für die Entwicklung Sie daraus eine Bildung weit darüber hinaus anwendbar editor.

Emacs-Dokumentation ist ein Wald.Ich kam aus Emacs, Vim, als ich merkte, wie organisiert Vim-Dokumentation ist, und wie chordable, viele features sind.Ich weiß nicht, was liegt auf dem Weg von einer Emacs-Experte, aber ich werde Sie warnen, dass lernen etwas nützliches zu tun in es dauert eine lange Zeit, und wird nicht machen Sie besser zu nethack.Stick mit Vim.

Textmate eine bessere Emacs für Mac, obwohl das nicht helfen Sie mit Solaris.Eclipse ist ziemlich cool und hat eine Menge plugins.

Emacs wird eine Produktivität gewinnen, wenn Sie bereit sind zu lernen und anpassen, um Ihren Bedarf zu passen.Die meisten Menschen sind es nicht.Um Ihre Produktivität zu erhöhen, müssen Sie das tool verwenden, für mehr als die einfache Bearbeitung - die meisten Menschen nie Fortschritte Vergangenheit einfache Bearbeitung.

Hier ein kurzer test:haben Sie Ihre individuelle Fenster-manager, um Ihre Umgebung effizienter zugeschnitten auf Ihre Bedürfnisse)?Wenn 'Nein', dann wahrscheinlich werden Sie nicht bekommen, den ROI zu lernen emacs.

That being said, wenn Sie die Entwicklung von Java -, Eclipse ist die standard-Antwort, also deine Frage ist ziemlich umstritten.

Ich war sehr zufrieden mit meiner Vim, aber sobald ich hörte, org-Modus, Ich begann zu lernen Emacs.org-Modus werden konnte, ist ein starker Grund, um zu lernen Emacs.

Ich Liebe emacs und verwenden Sie es täglich.

Das heißt, ich glaube nicht, dass die Kosten von lernen es wird wieder hereingeholt werden durch die Produktivitätssteigerungen die Straße hinunter.

Wenn Sie die Programmierung mit Java, brauchen Sie eine gute IDE.Emacs geht, einen fairen Weg zu sein, aber let ' s face it, IDEE et al schlagen, die Hände nach unten.(emacs-wahrscheinlich inspiriert viele IDEs, aber das ist eine andere Geschichte).

Zweimal habe ich versucht, zu lernen, Emacs.Es passt einfach nicht, wie mein Gehirn funktioniert, und deshalb weiß ich es nicht verwenden.

Emacs (oder vim) ist nicht signifikant besser als vim (oder Emacs).Beide haben viele Optionen hinzuzufügen, um Sie, die es Ihnen ermöglichen, erstaunliche Dinge tun.Ich habe keinen Zweifel, dass alles, was Sie bekommen können erledigt in Emacs kann man auch fertig in Vim, nur nicht standard.

Versuchen Sie Emacs.Sehen, wenn es besser passt.Es ist eine no-lose-situation.

Ich möchte, um sich in emacs weiter, aber ich kann einfach nicht verwenden es für lange Zeiträume;es tut weh, meine Hände.Mache ich etwas schrecklich falsch?

vim und emacs sind Sie DIE leistungsfähigsten Editoren und auch schon seit einiger Zeit.Wenn Sie wissen wirklich gut, ich bezweifle, dass Sie gewinnen, dass viel in dem Prozess,...

Jedoch, es ist immer eine gute Idee, zu schauen, was plugins sind verfügbar da ein paar neue plugins kann Wunder tun für die Produktivität.

/Johan

Nein (und ich habe beide).

Entlang der gleichen Linie, der nicht auf der Suche nach einen religiösen Krieg (aber gehen Sie voran und downvote Sie mich, wenn Sie fühlen Sie müssen), warum haben Sie das Gefühl, dass die einzige Möglichkeit, um vi emacs?Ist es das Betriebssystem, das Sie entwickeln, oder einfach nur die Optionen, die Sie erforscht?

Das Java development Landschaft genießt einige der besten IDEs in diesen Tagen (kostenlos und bezahlt) werden, wenn nicht die besten, wenn es um code-Bearbeitung und Umgestaltung zu unterstützen.IntelliJ IDEA hat sogar ein vi-plugins, die Ihnen helfen können fühlen sich mehr zu Hause, zum Beispiel (nicht sicher, ob es etwas ähnliches ist verfügbar für Eclipse).Beim wechseln der Werkzeuge bedeutet eine Lernkurve, die Zeit, es zu tun, könnte es Wert sein, wenn der Sprung groß genug ist.

Wie schnell tun Sie geben?Wenn Sie jagen und picken, dann emacs ist nicht für Sie.Wenn Ihr schnell tho, kann es helfen, dass Sie nicht mit Ihre Maus greifen alle die Zeit.

In der Regel, emacs, der stärker ist als vi.Man könnte noch viel mehr Dinge in emacs.

Du bist die Produktivität erhöhen, wenn Sie sich entscheiden, um die Zeit in Programm-text-editor.Von den beiden Editoren emacs stellt einen besseren Rahmen oder ständige Anpassung.Wenn Sie nicht Programmieren Sie Ihre text-editor, bleiben Sie einfach mit dem, was bequem ist.

Ein guter Grund, um zu lernen, Emacs ist, weil andere Programme verwenden, die Emacs Tastaturbelegung, auch.Sie können die Emacs Tastaturbelegung, an der bash-Eingabeaufforderung, zum Beispiel, oder irgendetwas anderes mit GNU readline.Es ist gut zu lernen, die grundlegenden Bewegung und Wort/Zeile löschen und undo - /redo-Akkorde in Emacs, so dass Sie Sie in anderen Programmen verwenden.Ihre Produktivität erhöht, in den anderen tools-auch wenn Sie nie verwenden Emacs wieder.

Ich weiß, Vim und Emacs und Vim passt zu meinem Gehirn und meine Gewohnheiten besser.Aber andere Leute behaupten, das gleiche zu Emacs.Sie wissen nie, selbst wenn Sie versuchen,.Es dauert nicht lange zu lernen, Emacs gut genug, um zu sehen, ob Sie es mögen.

Wird meine Produktivität wirklich steigern?

Für die ersten paar Tage/Wochen, absolut nicht.

Nachdem Sie aufhören müssen zu Lesen, durch das tutorial jedes mal, wenn Ihr was ändern möchtet - sicher..

Emacs ist mehr "Power" als vim, es die scripting-engine ist weit mehr flexible, und es gibt viel mehr Skripte, Modi und ähnliches gebaut, um emacs.

Das heißt, das Gegenteil ist der Fall..Wenn Sie haben die gleiche Menge an Zeit und verbessern Sie Ihre Kenntnisse von vim, würden Sie könnte genauso produktiv..

Vielleicht nicht produktiv in der gleichen Weise - ich würde sagen, vim schneller zum Bearbeiten von Dateien mit emacs ist besser zu tun, alles andere (mal wieder, ich persönlich würde sagen Dinge wie flymake-mode, VCS-Bindungen sind so schneller sind als die vim-äquivalent)

Ich Stimme mit Alan Sturm:"weil die Muster und Metaphern verwendet, die in Emacs kann nicht align mit Ihnen brain"

Dies ist ein sehr wichtiger Faktor.Verschiedene Gehirne passen sich unterschiedlich an verschiedene Schnittstellen.

Einige der wichtigsten - und leicht zugänglichen - Funktionen, die ich wirklich Liebe, Emacs, und ich zähle als die Produktivität Enhancer:
1."yank-pop" - Anlage- jeder Schnitt/Kopie, gespeichert in einem Stapel, so kann man später entscheiden, welche zu fügen (weiß nicht, ob vi / Vim hat dies aber für die meisten Java-IDEs nicht)
2.die Strg-Taste Navigations-mapping - dies ermöglicht es Sie zu navigieren Datei-ohne Ihre Hände zu bewegen off die Pfeiltasten zu verwenden.(key-Bindung in den anderen Editoren natürlich hilft)
3.verfügbar auf fast jeder Plattform (true vi/Vim zu natürlich) - ob über GUI oder die text-basierte (Java-IDEs sind verfügbar auf den meisten Plattformen auch, aber nur im GUI-Modus, und die sind deutlich größer und müssen separat installiert werden, während Emacs ist in der Regel überall verfügbar - BSD / *nix / Linux / Mac Systeme
4.Ich ziehe meinen editor zu bleiben aus dem Weg, bis ich es brauche - Emacs' spartan display zwingt mich zu denken, bevor ich aus.
5.Die grundlegende navigation Schlüssel in Emacs sind universell verfügbar - auf meinem Mac-OS, ich habe mit diesen Tasten können Sie im terminal mac mail, etc.

Letztendlich, wenn Emacs " - Philosophie, das Ihnen gefällt, legen Sie in den zusätzlichen Aufwand, es zu lernen.Und es wird Sie belohnen.

Da vi/Vim und Emacs sind ziemlich nah in dem, was Sie können oder nicht tun können, die Produktivität mit diesen beiden Herausgeber kommt aus der Erfahrung, es zu benutzen.

Meiner Meinung nach, ein Programmierer wird es nicht lange dauern, um die Allgemeine Idee zu Emacs sobald Sie beginnen, es zu verwenden.Andere können nur so viel sagen, Sie haben zu probieren Sie es aus, es zu wissen.

Wie für mich, ich benutze beide.Es ist, als ob man mehr als eine Waffe, um Krieg, verwenden Sie die richtige in den richtigen Umständen.;)

Ich mag Emacs, Sie können verlängern es durch Ihre Bedürfnisse - in meinen Augen ist jedes system, welches Sie erweitern können, indem Sie selbst die award-würdig.

Haftungsausschluss: Ich bin ignorant.Ich habe ein emacs-Nutzer seit ungefähr 4 Jahren, und vim-Benutzer für über 6 Monate, vielleicht mehr wie 15, wenn Sie zählen, all die Male, die ich versucht habe, es zu lernen und es gehasst.(Die Schrift vs verschieben-Modus Unterscheidung tötet mich.Jedes mal.Also, wenn es dich nicht umbringt, dann ist meiner Meinung nach ganz wertlos.) Das heißt, ich denke, meiner Meinung nach eigentlich interessanterweise unterscheidet sich von den 26 anderen, die ich gesehen habe hier, so werde ich zu Stimme.:Disclamer

Meine Meinung:

  • Emacs ist besser für die Eingabe, vor allem große-Skala "ich Schreibe ein neues feature und es wird eine Weile dauern, bis ich auch versuchen Sie es um zu sehen, ob es läuft".
  • Vim ist besser zum Bearbeiten, besonders schnell bearbeitet.

Wenn ich brauchen, um zu verstehen und hack in 8 Dateien gleichzeitig Emacs' Eigenschaften, wie ein Fliesen-Fenster-manager mit multi-Puffer (Puffer a 1.2:1-Korrespondenz zu Dateien, sind Sie oft die gleiche Sache, aber nicht unbedingt) regexp-suchen (und ersetzen) sind unglaublich.

Wenn ich nicht wie einige kleine Sache, da der git diff in der shell (I don 'T emacs' VC Funktionen sehr oft, obwohl, wenn ich tun, ich Liebe Sie) ich öffne es mit vim und Holen Sie sich die Hölle schneller als ich konnte Treffer Alt-TAB.

Die Tatsache, dass Emacs' Bearbeiten-Befehle, sind mehr leicht verfügbar, während der Eingabe um die Eingabe viel schneller, als es in Vim. Ctrl+a ist viel schneller als ESC ^ i, und Sie haben nicht die kognitive Belastung von "will ich a oder i oder o oder O..." was, Gott, ich hasse es, darüber nachzudenken.Und dasselbe gilt für alle anderen-Bewegung-Befehle Befehle.

Ich tippe schneller, viel schneller, in Emacs.Das bedeutet, dass Dinge wie Org-Modus (die ich für alles:TODO-Listen, bug-tracking, notes, lange E-Mails, Dokumentation...) mehr Sinn machen (für mich) in Emacs, als würden Sie in Vim.

Und, Elisp, ist unglaublich, auch wenn es nervt.Es macht Total up für Emacs' gebrochen reguläre Ausdrücke:Sie können die volle power emacs überall, auch in einer multi-Datei-regexp-Ersatz.Und in text-snippets.

Wenn Sie besorgt sind über die Gesundheit Ihrer Hände wählen Sie Vim.

Ich litt unter einem Anfall von RSI in der Vergangenheit, und ich fand einen der Hauptschuldigen war "sehnung", d.h.gedrückt halten viele Tasten gleichzeitig.Emacs verwendet sehnung ausgiebig, während VIM verwendet, einzelne Buchstaben Befehle verkettet in schneller Folge.Diese legt weniger Belastung auf Ihre Hände, als die Muskeln nicht zu verdrehen und zu verdrehen, um ausführen-Befehle in den editor.Verletzungsgefahr durch RSI ruinieren können Ihre Produktivität steigern und so in Ihren Berechnungen berücksichtigen Sie dies.

Ich sehe wirklich keinen Grund, zu wechseln.Ich habe vi für eine lange Zeit und bin sehr zufrieden mit es;etwa alle sechs Monate, würde ich emacs installieren, um es zu gehen, dann schnell wechseln Sie einfach wieder.Ja, es waren Dinge, die ich viel lieber über vi, aber der Hauptgrund, warum ich nie dabei geblieben ist, weil die Zeit der Investitionen, um vollständig zu lernen einem anderen editor, wenn ich bereits weiß, ein äußerst fähiger ist es nicht Wert.
Ich denke an diese vielmehr datiert Studie.

Meiner Meinung nach, SCHLEIM, das ist der einzige Grund zu wechseln emacs wenn Sie bereits beherrschen, vi.

Keine

Ich habe mit emacs für Jahre, ich bin ein konvertieren von VIM, und ich Liebe es zu bits.

Aber keine Produktivitätssteigerungen von einer besseren, programmable editor wird völlig ausgelöscht durch die enorme Menge an-Kopf-verdammt, die benötigt wird, um das hängen von emacs.Es wurde als eine Konsole-editor, und seine Idee, die Schnittstelle ist nicht deins.

Und selbst wenn du Sie hast, komplett, extra-Produktivität wird vor allem ausgedrückt werden, in der zusätzliche emacs lisp Sie schreiben können.

Who cares?Es ist ein großer Spaß, und lisp ist die Hunde!Wenn Sie wollen, um 'get things done', dann vergiss Programmierung.Sie können immer Programmierer 'do' 'Dinge'.

Der einzige Umstand, unter dem würde ich empfehlen, lernen emacs aus Gründen der Produktivität wenn Sie eine lisp/scheme/clojure-Programmierer.Es ist eine gute lisp-Umgebung, die dann die paar Sekunden, sparen Sie jedes mal, wenn Sie wollen, etwas zu tun, wird schnell summieren sich zu einem echten Gewinn.Und elisp (steht in Bezug auf lisp als excel-Makros stand zu ALGOL), Sie scheinen viel weniger Fremd, wenn Sie schon von einem echten lisp.

Wenn Sie es einmal versuchen, es auf eine virtuelle Konsole, wo es fühlt sich mehr wie eine vernünftige Weise an und vereinbaren Sie einen editor.Nur, wenn das Sinn macht versuchen zu verwenden Sie es unter ein-Fenster-system, das kämpfen mit ihm.

In einer früheren Antwort, die Aristoteles Pagaltzis schrieb:"Vim zeichnet sich durch die kleinen ...Sie können ganz einfach Dinge tun, in Vim in den normalen Gang der Bearbeitung erfordern würde, dass Sie auf den drop-down to scripting in Emacs."

Ich wechselte zu Emacs nach über einem Jahrzehnt ausschließlich mit vi, und anfangs hätte ich zugestimmt, mit dem Anspruch, "die Sie leicht tun können, die Dinge in Vim in den normalen Gang der Bearbeitung erfordern würde, dass Sie auf den drop-down to scripting in Emacs." Aber dann entdeckte ich, dass durch die Verwendung von Emacs' makro-Fähigkeit und eine große Anzahl von Wiederholungen, konnte ich leicht machen, Emacs ziemlich alles, was das VI. hatte leicht gemacht, und viel mehr.

Emacs' makro-Funktionalität umfasst drei Befehle:

C-x (       start remembering keystrokes
C-x )       stop remembering keystrokes
C-x e       replay the remembered keystrokes

Zum Beispiel, in vi, wenn ich wollte, alle zu finden <a> - tags in einer HTML-Datei und fügen Sie ein target Attribut, ich könnte so etwas tun die folgenden:

:g/^<a/s/>/ target="_blank">/

Dieses Beispiel ist nicht perfekt, da es davon ausgeht, dass alle <a> tags sind in einer Linie von sich selbst.Aber es ist gut genug für die veranschaulichen, wie man erreicht das äquivalent Aufgabe in zwei verschiedene Editoren.

Zu erreichen die gleiche Wirkung leicht in emacs, hier ist was ich tun:

1.  C-x (
2.  M-C-s <a\>
3.  C-b
4.  C-s >
5.  C-b
6.   target="_blank"
7.  C-x )
8.  C-u 10000 C-x e

Hier ist eine Beschreibung, was jedem Tastendruck oben hat:

1.  start remembering keystrokes
2.  regex search for <a.  Note that the "\>" after the "a" is not HTML.  It's emacs regex notation for end-of-word.
3.  back up one character - as a side-effect this gets you out of search mode
4.  search for the next ">"
5.  back up over the ">"
6.  enter space as an attribute-delimiter followed by the target="_blank" attribute
7.  stop remembering keystrokes
8.  replay the remembered keystrokes 10,000 times or until the search fails

Es sieht kompliziert aus, aber es ist eigentlich sehr einfach, zu geben.Und Sie können diesen Ansatz zu tun, viele Dinge, die vi nicht tun können, ohne jemals herunterfallen zu Lisp-code.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top