Wie kann man mit Emacs produktiver arbeiten? [geschlossen]

20

Ich habe Emacs ziemlich oft benutzt und bin mit den grundlegendsten Befehlen / Verknüpfungen vertraut, aber ich weiß, dass Emacs viel mehr zu bieten hat als das, was ich benutze. Was sind einige der weniger bekannten Merkmale von Emacs, die mir helfen können, ein produktiverer Programmierer zu werden?

GSto
quelle
8
@Wer auch immer zum Schließen gestimmt hat: Dies ist definitiv kein Thema ...
Chinmay Kanchi
1
Wenn dies kein Thema ist, besteht der Hauptzweck dieser Website vermutlich darin, Fragen vom Typ "Erzähl mir deine Lieblingsgeschichte" zu stellen.
MIA,
2
Ich verstehe nicht, wie dies als nicht thematisch angesehen werden kann. Wenn ich das bei Stack Overflow gefragt hätte, wäre es dort wahrscheinlich als subjektiv geschlossen. Also, wenn dies an keiner Stelle passt, wo soll ich eine solche Frage stellen?
GSto
Produktiver Programmierer eh ..
Daniel Little
2
Ich stimme dafür, diese Frage als "Off-Topic" zu schließen, da es sich um ein Software-Tool handelt. Es ist jedoch zu umfangreich und zu alt, um auf Stack Overflow zu migrieren.

Antworten:

17

Lerne elisp.

  1. Damit können Sie jede erdenkliche Verknüpfung programmieren. Jedes Mal, wenn Sie feststellen, dass Sie einen mehrstufigen Prozess für etwas Nützliches ausführen, erstellen Sie daraus eine Funktion und binden sie an eine Tastenkombination.

  2. Hier können Sie mit funktionaler Programmierung experimentieren - das Erlernen eines neuen Paradigmas ist eine gute Möglichkeit, Ihren Horizont zu erweitern.

Ahelly
quelle
Wenn Sie außerdem ein gewisses Maß an Elisp-Sprachkompetenz besitzen, können Sie die Konfiguration problemlos durchführen. Sobald mich etwas stört, versuche ich es zu beheben. Yasnippet ermöglicht auch programmierbare Schnipsel, mit denen Sie jede Menge Tipparbeit einsparen können (z. B. das eingefügte Muster ändern, wenn Sie sich in einem Header oder einer Implementierungsdatei befinden, und ungefähr eine Million anderer Tricks).
Juli
9

Auf dieser SO-Seite finden Sie genügend Tipps, um die Produktivität Ihres Emacs um mindestens das Zweifache zu steigern:

http://stackoverflow.com/questions/60367?tab=votes&page=1

Außerdem müssen Sie unbedingt den Org-Modus verwenden, wenn Sie ein Emacs-Benutzer sind:

Org: Dein Leben im Klartext

EDIT: Leider scheinen die SO-Moderatoren die erste Frage / den ersten Link nicht nur geschlossen, sondern auch entfernt zu haben, wodurch Wissen und Weisheit zerstört wurden. (Lassen Sie uns dieses Buch brennen, wir wissen nicht, wo es hingehört!) Der einzige nützliche alternative Link, den ich gefunden habe, ist der HN-Thread, der den SO-Thread diskutiert:

Die nützlichste Emacs-Funktion - Hacker News

Limist
quelle
SO Link funktioniert nicht mehr
funkybro
Vielen Dank für das Heads-up, eine Alternative, es ist nicht so gut, hat aber ein paar Tipps.
Limist
1
Sie können immer noch die entfernten Pfosten in www.stackprinter.com zu finden unter: stackprinter.com/...
barracel
@barracel Danke! Ein Programm / eine Dienstleistung hat uns vor der Torheit der Moderatoren bewahrt.
Limist
4

Aus meinem Kopf:

M-x compile     (now do C-x ` to cycle through errors)
M-x gdb
M-x grep-find
M-x find-tag    (aka M-.  and C-u M-. is "next" tag)
inferior-processes (if you use an interpreted language, 
                    you can eval directly from Emacs)
C-x v v         ([version control][1])

Im Allgemeinen ist das Kapitel Kompilierungs- und Testprogramme auf den Infoseiten eine gute Lektüre.

Trey Jackson
quelle
4

Der großartige Steve Yegge hat einen sehr schönen Blog-Beitrag geschrieben 10 Speziellen Möglichkeiten , Ihre Produktivität mit Emacs zu verbessern . Es beinhaltet Tricks und Gewohnheiten wie

  • Tastaturkonfiguration (Swap Caps-Lock und Controlerneutes Binden M-X)
  • Wort löschen mit backspace (wenn Sie schnell genug sind, ist es bequemer, das ganze Wort zu entfernen und es erneut zu tippen, als so lange zu tippen, backspacebis Ihr Tippfehler beseitigt ist)
  • Navigation durch inkrementelle Suche
  • Verwenden Sie temporäre Puffer und lernen Sie, wie Sie in Puffern effizient navigieren
  • Befreien Sie sich von der Navigation mit der Maus, den Menüs und anderen GUI-Dingen
  • Lernen, das Hilfesystem zu benutzen
  • Lernen Sie die Kraft regulärer Ausdrücke

Er listet auch einige nützliche Emacs-Modi auf und erwähnt viele andere Tricks, die die Leute auf zukünftige Aktualisierungen des Blogposts warten lassen.

FooF
quelle
2

Ich weiß, dass Sie speziell nach Methoden und Befehlen gefragt haben, aber ich würde den folgenden umfassenden Ansatz vorschlagen:

  1. Lesen Sie ein Buch über Emacs: Es gibt mehrere, darunter das Emacs-Handbuch und Learning Gnu Emacs von Cameron et al. Ich weiß, dass "das Handbuch lesen" banal und herablassend klingt, aber ich sage wirklich, dass ich jedes Mal, wenn ich das Handbuch lese, etwas wirklich Cooles erfahre, an das ich nicht einmal gedacht habe. Ich immer Gefühl, dass ich nicht genug Zeit damit verbracht habe, das Handbuch zu lesen.
  2. Treten Sie in die Emacs-Community ein: Emacswiki ist ein großartiger Ort, um mit anderen Emacs-Benutzern zu kommunizieren und sich über coole Pakete zu informieren . Auch der Beitritt zu help-gnu-emacs kann von Vorteil sein, da die Benutzer um Hilfe zu den von ihnen verwendeten Funktionen gebeten werden und Sie über den Proxy Informationen zu diesen Funktionen erhalten. Ich habe viele interessante Funktionen gefunden, als ich jemanden sah, der um Hilfe bat, und dann im Handbuch darüber las.
  3. Lernen Sie etwas über Lisp : Wenn Sie zumindest über Emacs Lisp sprechen können, sind Sie an einem viel besseren Ort, um sich über neue Funktionen zu informieren.
  4. Benutze Emacs die ganze Zeit. Ich benutze Emacs für alles außer für das Surfen im Internet (was Sie auch tun können), und daher habe ich immer die Gelegenheit, zu lernen, wie man mit einer von Emacs bereitgestellten Funktion etwas Neues besser macht. Ich benutze Emacs für Mail , Planung , Versionskontrolle , LaTeX- Dokumente und Programmierung. Fast meine gesamte Zeit verbringe ich mit Emacs oder Firefox.
Joel J. Adamson
quelle
2

Benutzerdefinierte workflowspezifische Änderungen

Als ich anfing, Test Driven Development zu machen, entwickelte ich eine Elisp-Funktion, mit der ich auf einfache Weise zwischen der Datei mit den Unit-Tests und der Datei mit dem Produktionscode wechseln konnte.

Ich habe auch angefangen, yasnippets für ein paar wichtige Sprachkonstrukte zu verwenden, wodurch ich weniger Zeit brauche, um das zu schreiben, was ich jeden Tag hunderte Male schreibe.

Zu guter Letzt; Ich habe den Luddite-Modus erstellt , der einfach die Menü- / Symbolleisten , Fringes und Bildlaufleisten deaktiviert und mich dazu zwingt, so oft wie möglich Tastenkombinationen zu verwenden.

klang
quelle
0

Zwei Befehle, die ich hin und wieder benutze, sind string-rectangleund kill-rectangle. Ersteres ermöglicht es Ihnen, wiederholten Text in einer bestimmten Spalte über mehrere Zeilen einzufügen. Letzteres macht das Gegenteil.

gablin
quelle