Mein Tagesjob ist Java / Webentwickler. Ich benutze Eclipse seit ca. 5 Jahren. Ich denke, es ist ausgezeichnet und ich benutze auch Webstorm für Javascript und html / jsp.
Ich muss gelegentlich in den Server ssh und mit Konfigurationsdateien herumspielen; dafür benutze ich vi und es schmerzt mich. Ich muss eine Webseite aufrufen, auf der die Syntax / Befehle aufgeführt sind: Drücken Sie die Esc-Taste, dann das Sternchen, drehen Sie sich dreimal und der Text wird zwei Zeilen über Ihrem Cursor eingegeben . Es ist so uninteressant für mich, und ich stelle mir jeden vor, der Ende der achtziger und neunziger Jahre aufgewachsen ist.
Hier sind die Hauptgründe, aus denen ich denke, dass Eclipse brillant ist (und ich nehme andere IDEs an) und nicht zu Emacs und / oder Vim wechseln.
- Fehler beim Hervorheben, da das Projekt nicht neu kompiliert werden muss.
- Code-Assist.
- Refactoring.
- Eröffnungsansage / Eröffnungserklärung.
- Vollständig in die Quellcodeverwaltung integriert.
- Debugger ist enthalten.
- Verfügbarkeit von Plugins von Drittanbietern - zB findbugs / checkstyle.
Eines der Argumente, die ich höre, ist, dass Sie mit emacs / vim Ihre eigenen Plugins erstellen können - okay, aber Sie können dies auch in Eclipse tun. Das muss man aber nicht, da schon alles da ist! Es ist wie zu sagen, kaufen Sie dieses halb gebaute Auto, Sie können den Rest selbst bauen.
Warum benutzen die Leute Emacs / Vim? Arbeiten Leute, die es verwenden, tatsächlich an komplexen objektorientierten Projekten in großen Organisationen?
Was sind die Gründe, um zu Vim / Emacs zu wechseln. Wie würde meine Produktivität steigen, wenn ich wechseln würde?
nano
eher alsvim
nur, weil ich eine CLI nicht oft genug benutze, um allevim
Befehle gelernt zu haben . Wenn Sie es nur gelegentlich verwenden, würde ich denken, dass etwas Einfachesnano
Ihnen besser dienen würde ...Antworten:
Verwenden Sie ein beliebiges Werkzeug, das Ihren Anforderungen entspricht. Die Kenntnis von VIM oder Emacs ist eine gute Sache, wenn Sie sich jemals bei einem Remote-Server anmelden und eine Konfigurationsdatei oder ähnliches bearbeiten müssen. Ich kenne VIM einigermaßen gut, aber ich würde es nicht verwenden, um in Java zu entwickeln. Dafür sind Eclipse, Netbeans usw. gemacht.
quelle
Emacs und Vi haben noch einen Platz.
Sie sind in Unix- und Unix-ähnlichen Umgebungen allgegenwärtig und können auf den meisten anderen gängigen Plattformen installiert werden.
Sie sind beliebt und stabil, sodass es sich langfristig auszahlt, sie einmal zu lernen.
Sie laufen über ein Textterminal, sodass Sie sie in Telnet- und SSH-Sitzungen verwenden können.
Sie bieten Bearbeitungsmodi und Syntaxhervorhebungen für eine Vielzahl von Sprachen, einschließlich sehr neuer und sehr seltener Sprachen. (Dies ist einer meiner Lieblingsvorteile.)
Der Schlüssel zum Verständnis dieser Programme ist jedoch zu wissen, welche Probleme sie ursprünglich lösen sollten. Bei Vi wurden Textdateien über Terminalverbindungen bearbeitet, die nur 300 Baud lang waren. In dieser Umgebung möchten Sie keine Menüs anzeigen oder den Bildschirminhalt radikal ändern, wenn Sie dies vermeiden können.
Emacs sollte in einer schnelleren Umgebung eingesetzt werden. Die Stärke war, dass es einmal geladen und nie verlassen werden konnte. Der Benutzer konnte jede andere Aufgabe, die er von Emacs benötigte, ausführen, ohne das Unternehmen zu verlassen, und dies häufig auf freundlichere Weise, als wenn er dies von der Befehlszeile aus tun müsste. Die Benutzer hatten keine grafische Desktop-Umgebung mit einem geöffneten Emacs-Fenster. Mit Emacs kann der Benutzer fast jede normale Aufgabe (und viele seltsame) mit nur wenigen Tastendrücken ausführen. Alles, was nicht eingebaut ist, kann mit Skripten versehen werden.
Offensichtlich haben sich die Bedürfnisse der Menschen seit Einführung dieser Programme stark verändert, aber sie haben immer noch einige echte Stärken. Ich habe die Grundlagen von beiden gelernt und benutze sie wöchentlich. Dennoch denke ich, dass ihre Stärken oft überbewertet sind. Sie haben einen so legendären Status erreicht, dass die Leute ihre Schwächen nicht eingestehen und eher denken, dass sie etwas falsch machen, wenn Emacs / Vi sie nicht produktiver macht als Eclipse oder Visual Studio.
Nun zum Punkt.
Java ist eine beliebte Sprache mit hervorragender Unterstützung für Eclipse. Sie entwickeln wahrscheinlich Code auf einem modernen Betriebssystem, mit dem Sie häufig auftretende Aufgaben schnell erledigen und andere Skripte erstellen können, ohne dies über Ihre IDE tun zu müssen. Ich glaube nicht, dass es Sinn macht, wenn Sie wechseln.
quelle
Ich benutze Emacs seit mehr als 5 Jahren. Ich kann Ihnen nicht mehr sagen, welche Tastenkombinationen ich verwende, meine Finger erinnern sich nur noch daran und müssen auf die Tastatur schauen, um zu sehen, was meine Hände tippen.
Vor ein paar Jahren habe ich angefangen, Eclipse zu verwenden, und es gibt keine Chance, dass ich frei zu Emacs zurückkehre. Tut
C-x r SPC 1
mir leid, Muskelgedächtnis, auch wenn du alt bist , macht Eclipse mich viel produktiver und das ist es, was zählt.Nein, ich glaube nicht, dass Sie wechseln sollten , aber Sie sollten ein paar Stunden investieren, um die Grundlagen von Vim zu lernen, damit Sie nicht mehr nachschlagen müssen.
quelle
Höchstwahrscheinlich sollten Sie nicht wechseln . Vim ist ein ausgezeichneter, leistungsfähiger Texteditor, aber er ist kein Ersatz für eine IDE und sollte es auch nicht sein! Eclipse ist sehr gut in der Untermenge von IDE-spezifischen Dingen, und vim ist sehr gut in der Untermenge von Textbearbeitungs-spezifischen Dingen. Jeder hat seinen eigenen Fokus.
Ich weiß, dass es Plugins gibt, die die Funktionalität von vim erweitern, so dass es viele der gleichen IDE-spezifischen Dinge ausführen kann, die eine IDE kann. Aber es ist immer noch nicht die Hauptstärke von vim, und eine IDE wird es fast immer besser können. Denn darauf konzentrieren sie sich.
Was ich in meiner täglichen Arbeit mache, ist , Visual Studio und vim zum Bearbeiten von C # zu verwenden. Es funktioniert sehr gut für mich und ich würde nie einen von ihnen herausschneiden, um mich ausschließlich auf den anderen zu verlassen.
Was Emacs angeht, bin ich kein Experte, aber ich glaube nicht, dass es mit den IDE-Funktionen von Eclipse in Bezug auf Java mithalten kann (bitte korrigieren Sie mich, wenn ich mich irre). Wenn Sie in Lisp entwickeln, dann kann es sicherlich als eine ausgezeichnete IDE angesehen werden, aber ich denke nicht, dass es die gleiche Unterstützung für Java hat.
Wenn Sie also einen leistungsstärkeren Texteditor neben Eclipse verwenden möchten, würde ich Ihnen definitiv empfehlen, entweder vim oder emacs zu lernen. Aber als Ergänzung, nicht als Ersatz . Auf lange Sicht kann es sich wirklich auszahlen, obwohl keiner von beiden eine besonders einfache Lernkurve hat:)
Hier ist eine schöne Lektüre über die Stärken von Vim. Und hier ist eine Liste einiger netter Tricks, die du machen kannst.
quelle
Lesen Sie dieses Dokument (PDF), um zu sehen, warum Emacs leistungsstark ist. Sobald Sie Lisp kennen, ist es fast trivial einfach, Erweiterungen dafür zu schreiben (ich habe mehrere Versionsverwaltungs-Workflows und -Bereitstellungen, die über ein Add-On, das ich selbst geschrieben habe, geschrieben wurden
employer-mode
). Was Sie oben aufgeführt haben;REPLs
viele Sprachen einbinden . Gerade jetzt, ich haberuby
,python
,haskell
,common lisp
,scheme
underlang
alle hooked in Emacs. Übrigens hat das JavaScript-Addonjs2-mode
eine vollständige inkrementelle "Kompilierung", so dass es Dinge wie Syntaxfehler für Sie hervorhebt, also ist es sicherlich möglich, aber nicht die Normautocomplete.el
git-mode
eingebautes Emacs ab 22.3, nicht sicher über andere QuellcodeverwaltungDas heißt, wenn Sie Lisp nicht mögen und nicht vorhaben, es zu lernen, kann ich Emacs nicht wirklich empfehlen. Der Gewinn, den Sie daraus ziehen, ist das Erlernen des Werkzeugbaus und das Anwenden dieser Prinzipien, um Ihre eigene Produktivität zu steigern, ohne eine Reihe von Mods von der Stange zu bekommen und sie aneinander zu reihen.
quelle
Ich sehe hier zwei Möglichkeiten:
nano somefile.conf
und Sie haben einen netten Editor. Sie können sogar Syntaxhervorhebungen hinzufügenHoffe das hilft
quelle
Persönlich mag ich Vim, weil es sich hervorragend zum Bearbeiten von Texten eignet, dh sehr ergonomisch (die Tastenkombinationen belasten meine Hände nicht so sehr und ich muss die Maus nicht so oft benutzen) und effizient, wenn Sie erst einmal den Dreh raus haben es (was natürlich Zeit und Geduld erfordert, da es nicht der intuitivste Editor für Anfänger ist).
Ich würde jedoch Eclipse für die umfangreiche Java-Entwicklung aufgrund der vielen verfügbaren Funktionen vorziehen. Natürlich gibt es einige Plugins , die Eclipse etwas erträglicher machen können.
quelle
Wenn Sie mit Eclipse zufrieden sind, wechseln Sie nicht.
Wenn Sie Eclipse überall einsetzen können, wechseln Sie nicht.
Wenn Ihr Projekt / Unternehmen so gut wie ausschließlich Eclipse verwendet, wechseln Sie nicht.
Wenn Sie nur selten etwas anderes benötigen, drucken Sie einen Spickzettel für einen der Editoren aus und ziehen Sie ihn bei Bedarf aus der Schublade. Kehren Sie dann zu Eclipse zurück.
Siehe die (gleiche) Frage bei SO: https://stackoverflow.com/questions/1346820/what-are-the-efficiencies-afforded-by-emacs-or-vim-vs-eclipse
Zur Beantwortung: "Arbeiten Leute, die es verwenden, tatsächlich an komplexen objektorientierten Projekten in großen Organisationen?" - Halte deinen Hut fest, aber die Antwort lautet "Ja". Ich habe an Projekten mit zig Millionen Codezeilen gearbeitet, die im kritischen Pfad für das Entwerfen der CPU verwendet wurden, auf der der Computer läuft, auf dem Sie diese Frage stellen. Und die Leute versuchten es mit Eclipse, fanden es aber zu langsam und klobig (obwohl wir zugegebenermaßen kein Java verwendeten).
quelle
Sowohl emacs als auch vim sind sehr konfigurierbare und leistungsstarke Editoren, und beide bieten große Produktivitätsgewinne, sobald die grundlegenden Konzepte erfasst sind.
Vi gewinnt mit im Wesentlichen satzbasierten Operationen. Das Ändern aller Instanzen von "foo" in "bar" in einer Klassendefinition ist beispielsweise ein Einzeiler.
Emacs ist ebenso mächtig, aber Sie müssen Emacs Lisp lernen, um es voll auszunutzen.
In beiden Fällen lohnt es sich nur zu wechseln, wenn Sie Emacs oder Vi für alles verwenden möchten .
quelle
Das beste Werkzeug (kurzfristig) ist eines, mit dem Sie sich bestens auskennen.
Die Leute benutzen über 30 Jahre alte Technologie, weil sie damit sehr gut umgehen können. Sie haben ihre Arbeitsabläufe und Gewohnheiten um diese Werkzeuge herum aufgebaut. Wenn Sie mit einer modernen IDE wie Eclipse besser vertraut sind, gibt es nicht viele Gründe für einen Wechsel. Das Erlernen einer effizienteren Nutzung von Eclipse ist eine bessere Investition in Ihre Zeit (z . B. Verwendung von Mylyn ).
quelle
Ich versuche gerade, von NetBeans zu vim zu wechseln. Das Erlernen von vim erfordert Zeit und Übung, aber ich sehe seine Vorteile gegenüber, nennen wir sie in bestimmten Fällen "GUI-Editoren".
Aber im Gegensatz zu Ihnen codiere ich hauptsächlich Ruby, und ich brauche nicht die ganze Code-generierende, automatische Vervollständigung, Refactor-my-Code-Black Magic, die NetBeans und Eclipse bieten. Wenn ich Java oder C # codieren würde, würde ich mit Sicherheit nicht versuchen, überhaupt zu wechseln.
quelle
Als langjähriger Benutzer von Emacs finde ich Emacs als Bearbeitungs- und Entwicklungsumgebung recht komfortabel (und in gewissem Umfang integriert es sich auch in den Erstellungsprozess, die Versionskontrolle, die schnelle kontextsensitive Suche und dergleichen, was ich als geeignet erachte es als "IDE").
Ich fühle mich auch recht wohl mit vi und vi-ähnlichen Editoren (ich habe mit ed angefangen, weil ich dachte, dass Emacs zu komplex ist; im Nachhinein ist das rückwärts, aber es hat mir eine solide Grundlage für das zukünftige Lernen von vi gegeben). Ich benutze vi hauptsächlich für "kleine schnelle Änderungen", hauptsächlich auf entfernten Rechnern, auf denen Emacs nicht installiert ist.
Für Ihr Szenario "Ich muss gelegentlich in den Server sshen und mit Konfigurationsdateien herumspielen. Für dieses Szenario verwende ich vi" empfehle ich eine kleine Reihe von Befehlen und einige allgemeine Überlegungen zu vi:
Es sollte nicht länger als ein oder zwei Stunden dauern, um mit vi herumzuspielen, bis ich weiß, dass ich eine Textdatei souverän bearbeiten kann, aber möglicherweise nicht effizient genug bin, und das ist so gut, wie Sie es wahrscheinlich müssen . Andernfalls sollte jeder Editor, der sich nicht mit der automatischen Konvertierung zwischen Tabulatoren und Leerzeichen befasst, für Ihre Zwecke "gut genug" sein. Wenn Eclipse auf all Ihren Remote-Servern installiert ist , sehe ich das nicht als großes Problem an.
quelle
Ich bin sehr ein Emacs-Typ. Ich benutze es für alle meine Programme und ermutige meine Mitarbeiter aktiv, es auch zu verwenden (und sie ignorieren mich aktiv). Ich finde es viel produktiver als jede andere IDE, und ich würde es niemals ändern.
Es sei denn, ich schreibe Java oder C # (und ich stelle mir vor, es gibt andere Sprachen in dieser Kategorie). Sie haben so große Bibliotheken von Sachen mit langen Namen, dass die Gewinne ich verwenden Emacs bekommen vollständig bei dem Versuch , alles zu erinnern , verloren gehen.
Ich empfehle Ihnen auf jeden Fall, Vim und / oder Emacs zu probieren . Aber Sie werden wahrscheinlich wieder in Eclipse für Java landen.
quelle
Ich habe kein Problem mit den verschiedenen verfügbaren UNIX-Editoren, aber ich benutze sie immer nur aus Protest. Nicht, wie gesagt, weil ich ein Problem mit ihnen habe, sondern weil, wenn ich sie verwenden muss, dies bedeutet, dass unser Bereitstellungsprozess in irgendeiner Weise mangelhaft ist.
Dies verdient wahrscheinlich etwas mehr Kontext: Ich arbeite an umfangreichen E-Commerce-Lösungen. Alles, was den Betrieb unserer Systeme regelt, wird durch einen Ein-Klick-Build / Deployment-Prozess generiert. Wir haben eine Reihe von Testumgebungen, sodass ich jederzeit über Eclipse Änderungen vornehmen, diese in cvs einchecken und einen Build / Deploy auslösen kann, um zu beweisen, dass mein Fix funktioniert hat. Wenn ich also in 'vi' herumhacke, können wir die einstündige Umstellung einer Bereitstellung nicht abwarten, oder die Bereitstellung deckt nicht die Dateien ab, die ich bearbeite, und muss erweitert werden, um dies zu tun also (ansonsten werde ich mich das nächste mal in vi hacken, wenn die fragliche Datei geändert werden muss).
quelle
Persönlich treiben mich beide Programme an die Wand. Das Problem mit Eclipse ist, dass es so langsam ist, wenn Sie an einem großen Projekt arbeiten, und dass es dann keine 'DGLP-Indizierung' oder was auch immer ausführt. Möchten Sie Ihr Repository aktualisieren? Noch 15 Minuten? Ach ja, und wie wäre es mit diesem tollen Trick, bei dem Sie einen Text mit gedrückter Strg-C-Taste und dann mit gedrückter Strg-P-Taste an einen anderen Ort verschieben, um eine völlig andere Datei zu öffnen und etwas anderes zu überlagern an erster Stelle. Oh, und habe ich schon erwähnt, dass ich mit Eclipse an einem großen Projekt über einen VPN gearbeitet habe? praktisch unmöglich.
Was Vim angeht, ist es nett und schnell, vorausgesetzt, Sie kennen die Vielzahl von völlig sinnlosen Tastenkombinationen, mit denen Sie etwas tun und viel Glück haben, wenn Sie sich versehentlich in einem unbekannten Modus befinden. Auch bei vim muss man so ziemlich die gesamte Projektverzeichnisstruktur im Kopf haben, um die richtigen Dateien zu öffnen. Der Hauptvorteil von Vim besteht darin, dass Sie theoretisch Code schneller erstellen können, weil alle Schlüssel vorhanden sind. In Wirklichkeit ist es mir egal, wie viel Text ich schreibe, nicht die Textmenge, auf die es ankommt, sondern die Qualität des Codes und häufig die Qualität Code erfordert, stundenlang auf Dutzende von Dateien zu starren, bis Sie genau das Richtige für die Eingabe herausgefunden haben (was normalerweise sehr kurz ist).
Was ich mir wünsche, ist, dass jemand ein Befehlszeilenprogramm wie vim schreibt, das tatsächlich eine Verzeichnisstruktur wie Eclipse auf der Seite hat oder etwas, von dem aus Sie Dateien erweitern / reduzieren und öffnen können. Weiß jemand so etwas?
quelle
Wenn Sie mit VIM oder EMACS nicht zufrieden sind, können Sie auf diesem Computer nach anderen Texteditoren suchen. Möglicherweise gibt es eine Variante von nedit oder gedit oder etwas Ähnliches, das Sie verwenden können und das bekanntere Befehle enthält (Strg x, c, v und s tun zum Beispiel das, was Sie erwarten).
Sie haben wahrscheinlich mehr als zwei Möglichkeiten für Ihre Distribution. Es lohnt sich, einen Blick darauf zu werfen.
quelle