Ordentliches Werkzeug: emacs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Gutes und gut erlerntes Werkzeug ist der Schlüssel zum effektiven Arbeiten. Das gilt auch (oder gerade) für Programmierer. In "The Pragmatic Programmer" schreiben die Autoren A.Hunt und D.Thomas, warum es sich lohnt, gutes Werkzeug zu suchen und bis zu einer gewissen Perfektion zu beherrschen. Das wichtigste Werkzeug in Linuxland sind die Shell und der Editor, Meine Wahl als Editor: emacs emacs ist Software-Urgestein, wird allen Unkenrufen zum Trotz regelmäßig gepflegt und hat eine große Fangemeinde. emacs ist in allen großen Linuxdistributionen verfügbar, andernfalls auf der GNU Seite [1] erhältlich zum selbst Übersetzen. Warum ist emacs erwähnenswert? Aus der Dokumentation: ``Emacs is the extensible, customizable, self-documenting real-time display editor.'' emacs ist hochgradig formbar. Es gibt eine große Zahl von Variablen, die vom Benutzer (dauerhaft) geändert werden können. Emacs ist größtenteils in Lisp geschrieben und in eben dieser Sprache erweiterbar. Man braucht aber keine Lisp-Kenntnisse, um den Editor mit Makros, die man direkt mit der Tastatur eingeben kann) zu erweitern. Wer den emacs zum ersten Mal startet, bekommt die allerwichtigsten Informationen auf der ersten Seite angezeigt. Die wichtigste ist die, wie man aus dem Editor ohne Schaden wieder herauskommt: C-x C-c. Diese Tastenkombination (C-x bedeutet, die Strg (Ctrl)--Taste zusammen mit "x" zu drücken) demonstriert sofort eines der wichtigsten Merkmale: sehr viele Befehle sind über Tastenkürzel erreichbar. Alle Befehle sind außerdem über ihre Namen erreichbar, und es gibt ein Menusystem. Mit emacs ist es ein Kinderspiel, viele Dateien gleichzeitig in mehreren Fenstern zu bearbeiten. Die wichtigste Quelle für Informationen zu emacs ist das eingebaute Hilfesystem, erreichbar mit "C-h r". Außerdem gibt es das Tutorial, in dem man die ersten Versuche machen kann, ohne etwas dauerhaft zu zerstören, erreichbar mit "C-h t". Eine sehr ausführliche Sammlung von Hilfen und Erweiterungen findet sich auf emacswiki [2]. Im ersten Teil des Vortrags sollen der Einstieg und ein paar ganz grundsätzliche Dinge vorgeführt werden. Die Hörer sind eingeladen, diese Schritte auf ihrem eigenen Laptop mitzumachen, sofern ein emacs installiert ist. * Ein-- und Aussteigen * Datei öffnen, speichern, umbenennen * Markieren, Kopieren, Schneiden, Einfügen, Point & Mark * Undo * Suchen und Ersetzen * Hilfe und refcard [5] * Anpassungen und ~/.emacs * tramp: Dateien auf einem anderen Rechner editieren Im zweiten Teil soll je nach Interesse und verfügbarer Zeit etwas aus der Liste der Fähigkeiten vorgeführt werden. Hier geht es eher darum, daß das Publikum sieht, was so machbar ist, wie die Begriffe heißen und wo man weitere Hilfe bekommt. * Rechnen: calc ist ein stackorientierter Rechner (a la HP) mit einer schier unglaublichen Zahl an Funktionen und Fähigkeiten * Programme editieren: Unterstützung von Vervollständigung und Syntaxprüfung, Aufruf von Compiler und Debugger, Interaktion mit dem Versionskontrollsystem (subversion, git, ...). Die Liste der unterstützten Sprachen ist lang. CEDET/semantic bietet eine Art IDE mit mehreren Fenstern zum Navigieren und zur Anzeige verschiedener Sichtweisen auf ein Software-Projekt. * Einsatz von Templates * Ediff zum Anzeigen und Bearbeiten von verschiedenen Dateiversionen * (strukturierte) Texte editieren: Hilfen für \LaTeX--, XML,HTML-- und andere Dokumente (auctex). * Mit dem Betriebsystem reden: z.B. Rechtschreibeprüfung über ein externes Programm (ispell), eine Shell in einem emacs Fenster betreiben * Todos, Zeiten, Aktivitäten verwalten: org-mode [4] * Spreadsheet: orgtbl-mode * Präsentationen erstellen: org-mode publish + \LaTeX * Email lesen: vm * Usenet lesen: gnus * Internet Relay Chat: erc * Webseiten ansehen: w3m [1] https://www.gnu.org/software/emacs/ [2] https://www.emacswiki.org/ [3] https://de.wikipedia.org/wiki/Emacs [4] http://orgmode.org/index.html [5] /usr/share/emacs/24.2/etc/refcards/refcard.pdf [6] https://www.gnu.org/software/emacs/tour/