Vim vs Emacs
-
Also ist vim dann auch schon eine IDE?
-
normaltipper schrieb:
Mechanics schrieb:
Ja... Ich hab auch Jahre gebraucht, bis ich vim effizient nutzen konnte
Was hat vim eigentlich für super features, dass man die jahrelang lernen kann? Ich meine es geht doch nur um Text editieren oder? Was kann man da viel machen? Text tippen, markieren, copy&paste, suchen/ersetzen und sonst?
Es kann vor allem
- Konfigurierbar sein: Wenn du möchtest, dass in bestimmten Situationen X passiert und nicht Y, dann kannst du das im Prinzip einrichten.
- Text editieren: Wie kopierst du Zeilen*, bearbeitest rechteckige Gebiete, wiederholst Aktionen, springst an bestimmte Stellen im Text, löschst ein Wort/einen Absatz/eine Zeile oder löschst bis-zu-einem-bestimmten-Zeichen vorwärts oder rückwärts, suchst und ersetzt regexes, suchst nach dem Wort auf dem der cursor steht? Und das ohne Maus und mit deutlich weniger Tastendrücken als in anderen Editoren?Und das sind nur Dinge, die mir als emacs-user von VIMlern vorgehalten werden.
(*Ja, emacs hat kein Standardbinding für aktuelle-Zeile-kopieren
)
Leider sind die Nachteile, dass vim und emacs nicht wirklich IDEs sind, und dass man damit die _wirklich_ Zeitsparenden Features (zu einer Klasse springen, Doku nachschauen, semantische Completion, _gute_ Integration mit Compiler und Debugger, vernünftige "Intuitive Bedienung" d.h. Menüelemente mit sichtbaren Keybindings und Hints) erst mühsam installieren muss. Es gibt Menschen, denen das gefällt, und die geben damit dann manchmal an. Das ändert aber nichts daran, dass das Zeit kostet, und zwar nicht wenig.
Emacs, hingegen, ist eine Plattform, und genießt sämltliche Vorteile dieses Statuses. Leider ist es eine nicht so weit verbreitete Platform, gerade im Vergleich zu Windows, X, eclipse. Deswegen sind die Tools dafür in der Regel von minderer Qualität, d.h. sie erhalten gängige Funktionalität später, haben mehr Bugs und sind schlechter gepflegt.
Beispiel: magit für emacs. Bevor ich gitk und gitgui gestartet habe, habe ich das aktuelle Changeset aus dem Editorfenster schon (Hunkweise) commited und kommentiert, ohne den Flow zu verlieren. Wenn es denn nicht mal die Kommunikation mit dem git-Prozess verhaut, und ich manuell fixen/emacs neustarten muss, was mich den Zeitgewinn zehnfach kostet.
-
normaltipper schrieb:
Also ist vim dann auch schon eine IDE?
Ne, aber du kannst dir krampfhaft selbst eine IDE mit den nötigen Plugins zusammenbasteln.
-
Steffo schrieb:
normaltipper schrieb:
Also ist vim dann auch schon eine IDE?
Ne, aber du kannst dir krampfhaft selbst eine IDE mit den nötigen Plugins zusammenbasteln.
Diese negative Haltung ist schon ein wenig übertrieben. Man kann mit Vim auch out-of-the-box seinen Sourcecode bequem navigieren. Einmal kurz ctags über den Quellcode laufen lassen und fortan kannst du in Vim bequem zu allen Deklarationen/Definitionen springen.
Und mit :find kann man extrem schnell zwischen den Dateien eines Projekts wechseln ohne, dass man lange darüber nachdenken muss wo diese nun liegen. Z.B., wenn ich zur main.c springen will, dann tippe ich :find main.c und schon bin ich in der main.c
Ist natürlich nur ein statisches Beispiel. Man muss find nicht ausschreiben und es gibt natürlich tab-completion für das Argument von :find.
-
Wieviele Zwischenablagen hat vim?
-
fragggee schrieb:
Wieviele Zwischenablagen hat vim?
Auf jeden Fall 26 die deiner Frage genügen.
-
Ich finde das mit den mehreren Zwischenablagen beim VisualStudio ein ziemlich nützliches Feature.
Ich frag mich gerade, ob es auch praktisch wäre, mehrere Cursors zu haben, also so ähnlich wie bookmarks, nur als Cursor. Hat vim sowas?
-
Kp wie es mit vim ist, aber emacs hat diese "bookmarks". Man speichert eine Cursorposition und kann später wieder dorthinspringen. Funktioniert auch über mehrere Files.
-
Steffo schrieb:
Die Diskussion vim vs. emacs ist obsolet, weil es mittlerweile Sublime Text 2 unter jeder Plattform gibt.
Wenn man coden will, gibt es m. A. n. objektiv betrachtet, keinen besseren Editor.Das kann man kaum provokativer formulieren.
Ich habe Sublime kurz ausprobiert und bin zum Schluss gekommen, dass er unbrauchbar ist.
- Build-Kommando schlecht. Erstens ist das Ausgabeterminal schlechter als das Default-Terminal von Emacs (und das ist schon sehr schlecht), und zweitens werden die Compilerausgaben überhaupt nicht gehighlighted. Wenn dann ein paar Template-Fehler kommen hat man verloren.
- Automatische Einrückung schwach. Copy/Paste von behält den Einzug standardmässig bei. Ein spezielles Past soll automatisch einrücken, aber funktioniert nicht richtig. Unformatierten Code (z.B. if+block auf selber Ebene) automatisch einrücken zu lassen geht nicht
- Viel zu wenig Sprachen. Ini-Files, Conf-Dateien, LaTeX, alles fehlt. Und die Liste im Menu ist jetzt schon viel zu lang um vernünftig mit der Hand auswählen zu können.
- Layouts umständlich. Ein File links, zwei Files rechts geht nicht ohne weiteres.
- Im Endeffekt codet man wieder mit der Hand. Datei öffnen: Man muss mühsam in einem Dialog herumklicken. Tab wechseln: Wenn viele Dateien geöffnet sind, kommt man nicht umhin, den richtigen mit der Maus auszuwählen.
Und trotz allem ist es ein reiner Editor. Dort hinkt er hinter Emacs hinterher, z.B. mehrere Zwischenablagen, Einrückung, etc. Dort sind Emacs und Vim auch kaum zu übertreffen.
Was Sublime völlig fehlt sind elementare IDE-Features. Emacs hat Debugger-Unterstützung, eingebaute Shells, und kann zu Compilerfehlern und Definitionen springen, uvm.
Um es m. A. n. objektiv zu formulieren: Sublime ist ein passabler Editor aber eine grottige IDE und verliert gegen Emacs und Vim in allen Bereichen*. Gegen normale IDEs (VS, C::B) hat er beim Editieren minimale Vorzüge, kann aber bei fortgeschrittenen Hilfsmitteln nicht mithalten.
* Ausgenommen einer DAU-geeigneten Bedienung -- vielleicht kommst du deshalb mit ihm besser zurecht.
-
@emmer: Hast du mal ein Profi das Teil nutzen sehen?
Der Tutor hier, hat selbst lange vim benutzt:http://net.tutsplus.com/articles/news/perfect-workflow-in-sublime-text-free-course/
Außerdem gibt es ein sogenanntes Vintage Mode, d. h. deine vim-Befehle stehen dir wieder zur Verfügung.
Einige deiner Kritikpunkte gehen auf Unkenntnis zurück. Z. B. können Sprachunterstützungen nachinstalliert werden. Das Auswählen einer Datei geht auch per Shortcut (STRG + P) etc.
Compilerunterstützung sind von der Sprache abhängig, wenn ich mich recht erinnere.
L. G.
Steffo
-
fragggee schrieb:
Ich finde das mit den mehreren Zwischenablagen beim VisualStudio ein ziemlich nützliches Feature.
Ich frag mich gerade, ob es auch praktisch wäre, mehrere Cursors zu haben, also so ähnlich wie bookmarks, nur als Cursor. Hat vim sowas?
Ja, auch das hat es. (Built-in.)
Du kannst 26 Positionen Dateilokal abspeichern und 26 Positionen Dateiglobal, also über Dateien hinweg springen.
Daneben gibt es wie bei den Zwischenablagen auch wieder einige Zusätzliche die automatisch geführt werden.
-
m. A. n. objektiv
Widerspruch?
Warum vim: Es ist einfach bei jeder Linuxdistribution die ich kenne als default meist vorinstalliert.
-
Anonymous schrieb:
Die Diskussion vim vs. emacs ist obsolet, weil es mittlerweile Sublime Text 2 unter jeder Plattform gibt.
Warum habe ich nur das Gefühl, das der Threadstarter und derjenige, der hier so stark für Sublime Text 2 Werbung macht die ein und selbe Person ist?
Für Configfiles und Scripte nutze ich nano (früher pico),
für kleine Quellcodedateien & Notizen bei denen ich nicht erst eine IDE starten will nutze ich Geany, PSPad, Crimson Editor oder Gedit
und zum eigentlichen programmieren dann eine vollwertige IDE wie Eclipse (sowohl für Java als auch für C++ und C).Insofern kam ich mit vim nie weiter als 1-2 Tage lang nur Tutorials und Tutorialvideos auf Youtube durchzuarbeiten, aber um vim dann langfristig zu nutzen, hat das nie gereicht.
Insofern nutze ich vim nicht mehr.
Und um vim IDE Funktionen beibzubringen muss man sicher erstmal umständlich verbieten bzw. ANleitungen lesen wie man Plugins installiert.
Auch hier scheitert vim an der Zugänglichkeit.Insofern nutze ich vim nicht mehr und habe auch keinen Bedarf dafür.
Tja und Emacs hat mich nie interessiert, weil das als einfacher handlicher Editor, also was was ich erwarten würde, schlichtweg viel zu fett ist.
-
das argument "zu fett" verstehe ich nicht.
erstens wird niemand gezwungen, mehr als eine kleine Teilmenge an emacs-Funktionen zu benutzen. Tastatur-Allergiker können die wichtigsten Fkt in Menüs aufrufen.
zweitens belegt der emacs vielleicht 0.0x% von meinem Plattenplatz.
-
"sublime" kostet 59$ und es ist nicht mal Emacs oder wenigstens OpenSource. Den überhaupt in einem Satz mit Emacs & Vim zu nennen, ist unverschämt.
Früher war ich Vim-Benutzer, heute weiß ich das ich Emacs bin. :xmas2:
-
großbuchstaben schrieb:
erstens wird niemand gezwungen, mehr als eine kleine Teilmenge an emacs-Funktionen zu benutzen.
Dann braucht man aber auch emacs nicht. Warum soll man sich eine Bedienung geben, die völlig anders ist als in jedem anderen existierenden UI, wenn man am Ende doch nur die Basics verwendet? Emacs war der feuchte Traum von Stallman, ein OS im OS zu schaffen, mehr nicht. Mir ist völlig unklar, warum man heutzutage überhaupt noch die Arbeit auf sich nimmt so etwas kaputtes zu lernen.
-
emacs sucht sich seine Fans eben sehr genau aus
-
Jeh schrieb:
Warum soll man sich eine Bedienung geben, die völlig anders ist als in jedem anderen existierenden UI
Sind doch eigentlich ziemlich viele Programme die Vi- oder Emacs-ähnliche Keybindings benutzen. Alle auf Readline aufbauenen Kommandozeilenprogramme unterstützen sogar beides, mit Emacs-Default. Zahlreiche PDF-Reader lassen das Navigieren mit Vim-Movement-Tasten zu. So manche Firefox-Shortcuts bauen auf Vi-Kommandos auf (drück doch mal '/').
Insgesamt ist das schon eine ganze Menge, sodass ich mir selbst als Vim-Nutzer die Emacs-Basics angeeignet habe, falls ein Programm mal nur Emacs-Shortcuts kann.