[gelöst] Arbeitseffizienz mit verschiedenen Texteditoren - normal vs. vi vs. Emacs



  • @hustbaer: http://www.profactor.co.uk/stylemanager.php (und wahrscheinlich noch einige andere Tools)

    MfG SideWinder



  • @SideWinder:
    Lustig, genau das Ding hab' ich mir mal von meinem Chef erschnorrt.
    Ist ziemlich gut zum Reformatieren von ganzen Projekten.

    Ich meine aber eher was was immer nebenbei mitläuft, und formatiert sobald man Enter drückt, nen Semikolon oder ne schliessende Klammer schreibt.



  • Wenn du genügend Rechenpower hast kannst du das Tool ja via MEF-Extension nach jedem Editor-Update für das aktuelle File anwerfen 🤡

    Schon klar, das ist nicht optimal. Stört mich auch, darf aber jetzt zum Glück mit C# 🙂

    MfG SideWinder



  • Dobi schrieb:

    @!rr!rr_.: Danke, auf solche Posts hatte ich gehofft. 🙂
    Du hast nicht zufällig Lust, ein kurzes Poservideo davon zu machen? 😃

    es muß echt bergab gehen mit der Welt ... jetzt reicht zum Posen schon die Benutzung von emacs 😃

    Tatsache: ich bin schneller beim TeXten von reinem Formeltext mit emacs-auctex als mit anderen Systemen, die ich probiert habe. Zu den erwähnten Vorteilen kommen noch die praktischen automatischen Klammern hinter _ und ^, und wenn man keine handschriftliche Vorlage hat: preview-latex zur Übersicht über das bereits geschriebene schon beim Tippen (wenn es funktioniert), außerdem habe ich noch dutzende eigene Tastenkombinationen in der .emacs definiert, Buffernavigation mit Pfeiltasten usw. die automatische Ergänzung von auctex bei allen \begin{...} ... \end{...} nicht zu vergessen.

    ps. 10-Fingersystem inkl Sonderzeichen ist ein enormer Beschleuniger zur flüssigen bedienung von emacs, mit 2-Finger-Suchsystem relativiert sich die Sache wahrscheinlich etwas.



  • nman schrieb:

    Naja, genauso interessant wie eine Forschungsarbeit ob Rittersport besser schmeckt als Milka oder der Schokoladigkeit/Preis-Quotient bei Valrhona noch vertretbar ist. 🙂

    Argh. 😃
    Mir gehts doch nicht um den Geschmack von Texteditoren sondern wie schnell man damit im Schnitt zum Ergebnis kommt. Die analoge Schkololadenstudie wär eher, mit welcher der Schokoladen man schneller sein Ziel erreicht Sumo-Ringer-Ausmaße zu bekommen. 😉

    nman schrieb:

    Wie das? Dass du die Trennlinie willkürlich zwischen Emacs, vim und allem anderen ziehst, macht es nicht weniger eigen, zwischen Emacs, vim und allem anderen zu vergleichen. Eclipse und Gedit sind sehr, sehr unterschiedliche Tools, vielleicht ähnlich verschieden wie vim und Emacs. Dass sie ähnliche Keybindings benutzen, heißt noch gar nichts.

    Na gut, so fühlte es sich halt für mich an.
    Wenn ich Notepad benutzen kann, kann ich auch direkt problemlos was in Kate, Gedit, Eclipse, Visual Studio usw. zusammentippen (mir gehts ja nur um die Textbearbeitung). Mit vi und Emacs musst ich komplett neu lernen. Und als ich wussen, wie man vi benutzt, hat mir das für meine Emacs-Versuche danach auch nicht geholfen. Deshalb dachte ich, dass man da von drei verschiedenen Konzepten sprechen kann. Kann aber natürlich auch gut sein, dass ich dank zu wenig Erfahrung da einfach falsch kategorisiert hab, weil ich irgendwas nicht erkannt hab.

    !rr!rr_. schrieb:

    es muß echt bergab gehen mit der Welt ... jetzt reicht zum Posen schon die Benutzung von emacs 😃

    Nein, ich meinte nicht, dass es beeindruckend ist, Emacs oder vi zu benutzen, sondern dass es beeindruckend ist, wenn man etwas herausragend gut kann. Und da hatte ich hat gehofft, was zu sehen, wo man erkennt, wie viel krasser man vielleicht mit einem der Editoren, mit denen ich nicht so gut kann, abgehen kann. Na gut, wird wohl nix. 😉

    !rr!rr_. schrieb:

    ps. 10-Fingersystem inkl Sonderzeichen ist ein enormer Beschleuniger zur flüssigen bedienung von emacs, mit 2-Finger-Suchsystem relativiert sich die Sache wahrscheinlich etwas.

    Jaja, wir wissen ja, dass du nicht hinguckst. Ich tipp übrigens auch schon seit Jahren auf sowas.
    http://www.getdigital.de/images/produkte/t4/t4_dasKeyboardUltimateEU.jpg
    😉


  • Mod

    Ein paar Klitzekleinigkeiten die noch niemand genannt hat, die zunächst lächerlich klingen, aber in der Summe dann doch einen nennenwerten Vorteil darstellen:

    1. bash hat standardmäßig die gleiche Bedienung wie emacs. Daher brauche ich keine Umgewöhnung bei den von mir am meisten genutzten Tippaufgaben (ich wünschte, das Editierfenster hier im Forum wäre auch emacs-kompatibel, dann wäre die Welt perfekt 🙂 ).
    2. Kurze Wege: Viele andere Editoren brauchen doch recht häufig die Tasten Insert, Home, Page Up & Co. Dafür muss ich die rechte Hand bewegen. Oder auf Laptoptastaturen komische Verrenkungen machen. CTRL+A klingt zwar zunächst umständlicher als Home, aber es ist einfach leichter zu erreichen. Insbesondere dann, wenn man CapsLock zu einer weiteren CTRL-Taste gemacht hat, was ich jedem empfehle (sowohl weil CapsLock allgemein ziemlich unnütz ist als auch für Emacsnutzer um den berüchtigten Emacsfinger zu vermeiden).
    3. Die Grundkommandos kommen meinem Workflow entgegen. Klar habe ich meinen Workflow offensichtlich an emacs angepasst, daher ist das subjektiv. Aber ich habe das Gefühl, dass es nicht viel besser geht. Bei zeilenbasierten Editieraufgaben (wie Programmieren) brauche ich z.B. ungeheuer oft Dinge wie "Rest der Zeile löschen". Bei (ich nenne sie mal so) windowsartigen Editoren wäre das shift+End, Del, Del (ich lasse mich gerne belehren, falls das besser geht). In emacs ist das eine der grundlegendsten Tastenkombinationen. Siehe auch Punkt 2.
    4. Mag nicht mehr aktuell sein, weil ich schon lange nichts anderes mehr intensiv benutzt habe: Die Funktionsweise der automatischen Einrückung und der Klammer-Prüfung ist die beste die ich kenne.
    5. Wenn man, wie ich, auch abundzu mal ein vollkommen verkonfiguriertes Suse 7 auf einem Laptop ohne Navigationstasten wieder herrichten muss: Tastenkombinationen mit CTRL oder Alt funktionieren auf jedem noch so abgefahrenen System. Die Schnelltasten (oder sogar so grundlegende Dinge wie links, recht, oben und unten) vieler anderer Editoren setzen voraus, dass das System einigermaßen normal ist.
    6. ⚠ Emacs kann man auch im reinen Textmodus sehr gut benutzen. Eigentlich ganz genau so wie immer, außer dass die Vorschau in auctex nicht geht. Das kann kein anderer Editor außer vim! Das ist ungeheuer wichtig, wenn man öfters mal über ssh ohne X arbeitet oder einen Server ohne Desktopoberfläche administriert. Dies würde ich sogar als den Hauptvorteil für mich ansehen, weil ich doch sehr oft Remote arbeite auf Systemen die nur ssh anbieten (und ssh mit X Weiterleitung ist einfach zu lahm über Internet).

    Was mir an Emacs nicht gefällt:
    - Meine Version hat einen Bug im grafischen Modus, bei dem es (nicht reproduizierbar 😡 , meistens nach Größenänderung des Fensters) 1-2 mal die Woche einfach mal hängen bleibt und man erst mit der Maus einen beliebigen Dialog öffnen und wieder schließen muss, damit die Tastaturbedienung wieder anspricht. Das ist soweit ich weiß ein bekannter Fehler, aber noch nicht behoben.
    - Abundzu mal (sehr selten) kommt die Autoeinrückung nicht richtig mit C++-Konstruktoren zurecht und ich habe keine Ahnung warum.

    Wie man sieht, sind diese zwei Dinge handfeste Bugs, die vielleicht irgendwann mal behoben werden, keine Fehler im grundlegenden Konzept.



  • Ich benutze zwar Notepad++ und MSVC für C++, bewundere aber emacs-Gurus.
    Ich habe selbst mal eine ganze Weile mit emacs gearbeitet, aber nie die Zeit genommen, mich in emacs richtig einzuarbeiten. Klar, einige der grundlegenden Fingerknotenshortcuts saßen dann auch irgendwann, aber ich behaupte, dass man einiges an Zeit investieren muss, um sich wirklich einzuarbeiten und die Features auch zu nutzen, die emacs bietet. Mit ein paar Tagen ist das nicth getan, ich denke mal, dass man monatelang immer wieder mal einige Minuten investieren muss, um sich shortcuts für irgendwelche mehr oder weniger häufig vorkommenden komplexen Aufgaben rauszusuchen und einzuüben. Wenn ich jedesmal nachgucken muss, dass die Aktion, für die ich sonst mit der Maus 10 Klicks und einige Wiederholungen irgendeines Kürzels gebraucht habe, auch mit 2 5-tasten-Kürzeln zu erledigen ist, dann frisst das Nachschlagen mir den Zeitgewinn wieder auf...
    Wenn man dann noch Ahnung von Lisp hat und sich häufige Aufgaben in irgendwelche Scripte dengeln kann, wird Emacs erst richtig mächtig.
    Mein einziges Problem: diese extrem hohe Lernschwelle. Ich möchte können, nicht erst lange lernen 😉





  • Leute, jetzt mal ehrlich, was macht ihr alle beim Programmieren, wo man ach-so-viele Mausklicks bräuchte wenn man nicht mit emacs/vi/... arbeitet?

    Bitte konkrete Beispiele von etwas was ihr öfter braucht.

    Wie gesagt: zum Programmieren, NICHT zum TeXten oder andere Dinge.



  • hustbaer schrieb:

    Leute, jetzt mal ehrlich, was macht ihr alle beim Programmieren, wo man ach-so-viele Mausklicks bräuchte wenn man nicht mit emacs/vi/... arbeitet?

    Debuggen. Das tue ich immer mit einer Hand auf der Tastatur für Breakpoint setzen/aufheben, Run/Stop/Step-In/Out/Over, Bookmarks setzen/aufheben und dann die Maus fürs betrachten der Variablen und innerhalb des Codes navigieren.

    Sonst brauch ich die Maus eigentlich nur beim GUI zusammenklicken und Testen 😉



  • Dobi schrieb:

    Mir gehts doch nicht um den Geschmack von Texteditoren sondern wie schnell man damit im Schnitt zum Ergebnis kommt.

    Völlig unerheblich. Du kannst nur die Tippgeschwindigkeit sinnvoll messen, die ist aber das mit Abstand uninteressanteste und im Regelfall auch überall gleich. Code runterschreiben kann ich mit so ziemlich jedem Editor ähnlich schnell. Dass ich beim regulären Arbeiten mit Emacs um Größenordnungen schneller sein werde, als mit Visual Studio und vim liegt nicht an Visual Studio und vim sondern an mir und meiner Übung mit den jeweiligen Tools.

    hustbaer schrieb:

    Leute, jetzt mal ehrlich, was macht ihr alle beim Programmieren, wo man ach-so-viele Mausklicks bräuchte wenn man nicht mit emacs/vi/... arbeitet?

    Bitte konkrete Beispiele von etwas was ihr öfter braucht.

    Zum Zeugs selektieren. Mit normalen Texteditoren muss ich dafür immer die Hände aus der 10-Finger-Tipp-Position entfernen, weil ich Shift und die Cursortasten brauche. Beim Rectangle Editing genau das gleiche. Beim Debuggen auch. Zum beim Copy&Pasten den richtigen Clipboard-Inhalt aus der History raussuchen, wo ich bei Emacs die Tastatur benutze. Mir fallen bestimmt noch weitere Beispiele ein, aber das sind alles Punkte, bei denen ich bei fremden Laptops mit ungewohntem Touchpad und ohne Emacs dauernd stolpere.



  • SeppJ schrieb:

    Bei zeilenbasierten Editieraufgaben (wie Programmieren) brauche ich z.B. ungeheuer oft Dinge wie "Rest der Zeile löschen".

    Ich verwende zB. beim Korrekturlesen irgendwelcher Texte auch dauernd Capitalize und die Transpose-Funktionen etc. Natürlich könnte ich das auch manuell machen, aber ich finde es beim Arbeiten sehr angenehm, weil es wieder ein paar mentale Kontextswitches weniger sind.

    Ack auch zum Rest deines Posts. Wobei mir andere Sachen auf die Nerven gehen und ich die Hänger nicht kenne.



  • nman schrieb:

    Dass ich beim regulären Arbeiten mit Emacs um Größenordnungen schneller sein werde, als mit Visual Studio und vim liegt nicht an Visual Studio und vim sondern an mir und meiner Übung mit den jeweiligen Tools.

    Mittlerweile ist für mich das interessanteste an dem Thread, dass ich lerne, wie unverständlich ich mich anscheinend ausdrücke.
    Aber ich probiers nochmal: Dass man mit dem Tool, das man gut kennt, am schnellsten ist, ist mir vollkommen klar. Es hätte ja aber sein können, dass Leute die mit X sehr viel Übung haben im Schnitt wesentlich schneller sind als Leute, die mit Y sehr viel Übung haben, einfach weil X so und so.

    Einige sehr gute Infos besonders zu Emacs hab ich dann ja aber trotzdem erhalten. Danke dafür.



  • Dobi schrieb:

    Mittlerweile ist für mich das interessanteste an dem Thread, dass ich lerne, wie unverständlich ich mich anscheinend ausdrücke.

    Ich glaube eigentlich, dich zu verstehen, offensichtlich tue ich mir aber schwer, meine Gedanken dazu gut zu vermitteln.

    Aber ich probiers nochmal: Dass man mit dem Tool, das man gut kennt, am schnellsten ist, ist mir vollkommen klar. Es hätte ja aber sein können, dass Leute die mit X sehr viel Übung haben im Schnitt wesentlich schneller sind als Leute, die mit Y sehr viel Übung haben, einfach weil X so und so.

    Die Frage ist: Sagt dir das dann irgendwas? Alleine aufgrund der Usergruppen, die mit einem Tool viel Erfahrung haben, hast du ja schon einen gewaltigen Selection Bias.

    Wie genau misst du außerdem die Performance bei einem nicht trivialen Problem? Es ist ja doch was anderes, möglichst schnell ein Hello world dahinzurotzen, als wirklich ein echtes Problem in freier Wildbahn zu lösen. Und je weniger konstruiert die Beispiele werden, desto wichtiger werden alle Non-Editor-Einflüsse.

    Ich verstehe schon, was du machen möchtest. Ich glaube nur, dass du es dir viel zu einfach vorstellst. Wie willst du denn eine Varianzenanalyse machen, wenn du keine Ahnung hast, welche Variablen und Gruppen du überhaupt analysieren möchtest und wie du Performance messen sollst.

    Natürlich könntest du feststellen, dass Benutzer von Visual Studio viel schneller C#-Programme schreiben können, als Emacs-Benutzer. Aber das könnte auch daran liegen, dass der durchschnittliche VS-User mehr Ahnung von C# hat, als daran, wie gut Visual Studio für C# geeignet ist (wobei es dafür bestimmt gut ist, keine Frage). Ich glaube auch, dass der durchschnittliche vim-User besseres C schreibt, als der durchschnittliche Textmate-User. Das liegt aber auch eher daran, in welchen Zielgruppen die jeweiligen Tools verbreitet sind, als an sonstwas.

    All diese Einflüsse kannst du nicht einfach ausblenden. Zumindest dann nicht, wenn du eine Analyse haben möchtest, die irgendeine Aussagekraft für irgendwas hat.



  • Eine schöne Ausarbeitung, die das statistisch erfasst und dabei die unterschiedlichen Faktoren berücksichtigt und so, wär natürlich zu schön.
    Deshalb wär ich ja mit einem einfachen Video, in dem ich mal jemanden sehe, der mit Emacs oder vim wirklich schnell ist, schon zufrieden gewesen. Dann hätte ich ganz gefühls- und geschmacksmäßig entschieden, ob das was ist, in das ich mal Zeit zum richtigen Ausprobieren investieren will. 😉



  • Für Emacs: Schau dir doch einfach mal ein paar Screencasts zu orgmode, auctex, slime, cedet oä. an.

    Hier sind auch noch ein paar Screencasts, vielleicht auch brauchbare:
    http://www.emacswiki.org/emacs/EmacsScreencasts

    Das sollte eine recht nette Einführung sein:
    http://peepcode.com/products/meet-emacs

    Speed-Editing-Poservideos finde ich persönlich eher abschreckend, die musst du selbst suchen. 🙂



  • Für VIM gibt's auch ganz nette Screencasts (Vimcasts), wobei dort natürlich nicht sonderlich schnell editiert wird - eher im Gegenteil, damit man dem Ganzen auch folgen kann.

    Ganz interessante Videos könnten sein:
    http://vimcasts.org/episodes/creating-the-vimcasts-logo-as-ascii-art/
    http://vimcasts.org/episodes/aligning-text-with-tabular-vim/



  • Dobi schrieb:

    ... Dann hätte ich ganz gefühls- und geschmacksmäßig entschieden, ob das was ist, in das ich mal Zeit zum richtigen Ausprobieren investieren will. 😉

    Nein, daraus wird nichts. Du musst die Tools anfassen und bedienen lernen - danach entscheiden, ob sie was taugen oder nicht. Wenn dir die Leute sagen, Tool X sei gut - dann muss was dran sein und würde sich lohnen, es auszuprobieren.
    Ich benutze gerne vi (gVim) und empfehle dir, vi zu benutzen. Ich behaupte mal, man kann damit effektiver arbeiten als mit anderen Editoren. Vielleicht rein subjektiv 😕 keine Ahnung, das wirst du selbst merken. Bei mir ist es so: Ich arbeite damit effektiver als mit anderen Editoren. Das fängt an mit Positionieren des Cursors, z.B. Setzen des Cursors am Anfang der Funktion, am Ende, an der nächten leeren Zeile, an der zugehörigen schließenden Klammer, ob eckig, oder rund oder was auch immer, bis komplexeren wie "Mappen" von mehreren Kommandos auf eine Taste, "Copypasten" mit mehreren Registern. Man muss bei der Bedienung umdenken lernen, vor dem eigentlichen Tippen erst denken, dann tippen, entweder Kommandos eintippen, die den Text modifizieren oder was auch immer, oder einfach den eigentlichen Text eintippen. Ja... so einfach ist das, erst denken, dann tippen...



  • abc.w schrieb:

    Dobi schrieb:

    ... Dann hätte ich ganz gefühls- und geschmacksmäßig entschieden, ob das was ist, in das ich mal Zeit zum richtigen Ausprobieren investieren will. 😉

    Nein, daraus wird nichts. Du musst die Tools anfassen und bedienen lernen - danach entscheiden, ob sie was taugen oder nicht. Wenn dir die Leute sagen, Tool X sei gut - dann muss was dran sein und würde sich lohnen, es auszuprobieren.

    Also so langsam komm ich mir vor, als nehmt ihr mich auf den Arm. 😉
    Ich hab doch geschrieben, dass ich, wenn ich einen Anreiz sehe, das ganze richtig Ausprobieren würde, was ja bedeutet, dass ich die Tools anfassen und bedienen lernen würde, um dann zu entscheiden, ob es was für mich ist.

    abc.w schrieb:

    Ich benutze gerne vi (gVim) und empfehle dir, vi zu benutzen. Ich behaupte mal, man kann damit effektiver arbeiten als mit anderen Editoren. Vielleicht rein subjektiv 😕 keine Ahnung, das wirst du selbst merken. Bei mir ist es so: Ich arbeite damit effektiver als mit anderen Editoren. Das fängt an mit Positionieren des Cursors, z.B. Setzen des Cursors am Anfang der Funktion, am Ende, an der nächten leeren Zeile, an der zugehörigen schließenden Klammer, ob eckig, oder rund oder was auch immer, bis komplexeren wie "Mappen" von mehreren Kommandos auf eine Taste, "Copypasten" mit mehreren Registern. Man muss bei der Bedienung umdenken lernen, vor dem eigentlichen Tippen erst denken, dann tippen, entweder Kommandos eintippen, die den Text modifizieren oder was auch immer, oder einfach den eigentlichen Text eintippen. Ja... so einfach ist das, erst denken, dann tippen...

    Danke, hört sich interessant an.



  • ich bin so schnell mit emacs, das kannste in keinem screencast erfassen 🕶

    Erwähnenswert vor allem isearch & set-mark-command. Und es hilft im "Flow", die Pfeiltasten nicht benutzen zu müssen.

    Dafür geht dann öfter Zeit dabei drauf, Klassen/Funktionen zu suchen. Die C++ "Groß-Projekt" Unterstützung ist eher mangelhaft.
    Meistens ist grep/occur aber eh nützlicher als nur zur Definition zu springen.


Anmelden zum Antworten