Tutorial: Aufgabenverwaltung im GNU Emacs

Letzte Aktualisierung: 12. August 2017

Dieser Text begleitet den Emacs-Einsteiger bei seinen ersten Schritten in der Aufgabenverwaltung mit dem Emacs Org-mode. Nach Einführung des Emacs und des Org-mode als Projekte von Enthusiasten wird gezeigt, wie eine einfache Aufgabenverwaltung im Emacs – ausgehend von einem unkonfigurierten Emacs – implementiert werden kann. Anschließend werden weitere Quellen genannt, die eine Vertiefung ermöglichen, sollte der Leser Feuer für den Emacs gefangen haben.

1 Einstimmung und ein Hoch auf die Community

1.1 Was ist der GNU Emacs? Was ist der Org-mode?

Der GNU Emacs ist ein programmierbarer Texteditor und war 1984 die erste Applikation, die Richard Stallman im Rahmen des GNU-Projektes entwickelt hat. Ziel des GNU-Projektes war und ist es noch heute, ein Betriebssystem zur Verfügung zu stellen, dass den Nutzern die Freiheiten gibt, es zu verwenden, zu untersuchen, zu verbreiten und ändern zu dürfen. Eine Software, die unter einer Lizenz steht, die diese Rechte gewährt, wird seitdem Freie Software genannt. (Der Begriff „Open Source“ ist nicht ganz deckungsgleich; diese Kontroverse führt hier jedoch zu weit. Ich verwende die beiden Begriffe hier unzulässigerweise synonym.)

Das GNU-Projekt ist eine Reaktion auf die seit den 1980er Jahren zunehmende Einschränkung von Nutzerrechten durch die Softwarekonzerne. Vor den 1980er-Jahren, als Richard Stallman bereits am renommierten Massachusetts Institute of Technology (MIT) arbeitete, war der Umgang mit Software von einem produktiven Miteinander geprägt. Software wurde geteilt; Quellcodes wurden geteilt. Entwickler konnten die Quellcodes anderer studieren und konnten auf den Schultern von Giganten stehen. Es war nicht nötig, dass jeder Softwareentwickler das Rad wieder neu erfindet, da man in den Quelltexten sehen konnte, wie andere ein Problem gelöst haben. Freie Software ist also nicht allein Altruismus, sondern möchte auch ganz praktisch den Fortschritt und ein produktives Miteinander unterstützen.

Der Emacs Org-mode ist schließlich eine Erweiterung des Emacs, ein sog. Mode in der Sprache des Emacs, mit der die Aufgabenverwaltung im weitesten Sinne möglich ist. Die Entwicklung des Org-mode wurde 2003 durch Carsten Dominik, Astronomie-Professor an der Universität von Amsterdam, gestartet und wurde von der Emacs-Gemeinschaft schnell begeistert aufgenommen. Mit den Jahren wurde der Org-mode um zahlreiche Funktionen erweitert. Heute besteht um den Org-mode eine agile Entwickler- und Nutzergemeinde, die sich vor allem über die Mailingliste Emacs-Orgmode austauscht. Man kann den Org-mode vielleicht am besten als eine Art Framework bezeichnen. Die Projektseite beschreibt den Org-mode wie folgt: Org-mode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system.

1.2 Entstehung und Zielsetzung dieses Textes

Auf meiner privaten Internetseite stelle ich seit Jahren Texte zur Verfügung, die dokumentieren, wie ich persönlich den Emacs nutze. Damit richte ich mich an andere Emacs-Nutzer, also Anwender, die den Emacs bereits kennen und wissen, wie man ihn bedient und konfiguriert. In der Emacs-Gemeinschaft – wie im Open Source Bereich generell – gibt es die schöne Tradition, sich gegenseitig zu zeigen, wie man die Software nutzt. Dabei legen Nutzer regelmäßig auch ihre persönliche Konfiguration offen, um in eine Diskussion einzusteigen. So können wir voneinander lernen und bekommen immer wieder neue Anregungen. Das ist sinnvoll – und macht Spaß; denn der Emacs ist ja soetwas wie ein kleines Hobby für viele von uns.

Für Emacs-Einsteiger hatte ich hingegen bisher keine Texte auf meiner Internetseite. Dies liegt vor allem daran, dass Informationen zum Emacs fast ausschließlich auf Englisch vorliegen. Ohne Englisch kommt man daher sowieso nicht aus, wenn man ernsthaft in den Emacs einsteigen möchte. Vor diesem Hintergrund macht eine deutsche Einführung in den Emacs nur bedingt Sinn.

Doch warum habe ich nun dennoch diesen Text geschrieben?

Der Org-mode ist mit den Jahren so gut geworden, dass nicht nur Emacs-Nutzer auf ihn aufmerksam werden, sondern es gibt immer wieder Fälle, in denen ein Anwender über den Org-mode zum Emacs kommt. Ich bekomme immer wieder Anfragen per E-Mail, in denen Emacs-Einsteiger nach grundlegenden Informationen und einem Einstiegstutorial fragen. Zwar gilt weiterhin, dass man um englische Quellen nicht herum kommt, wenn man sich ernsthaft mit dem Emacs beschäftigen möchte. Allerdings kann ich nachvollziehen, dass es angenehmer und einfacher ist, die ersten Schritte in der Muttersprache gehen zu können, vor allem, da die Lernkurve des Emacs doch ziemlich steil ist. Meine Hoffnung ist, dass dieser Text neuen Emacs-Anwendern bei den ersten Schritten hilft, und dass nach Durcharbeitung dieses Tutorials die Begeisterung für den Emacs so groß ist, dass die Mühe der Arbeit mit englischen Texten auf sich genommen wird.

Dieser Text begleitet also den Emacs-Neuling – ausgehend von einem frisch installierten, unkonfigurierten Emacs – ohne Umwege bei der Einrichtung eines einfachen Projektmanagements im Emacs. So soll er einen Eindruck von der Arbeit mit dem Emacs und ein Gefühl dafür bekommen, ob der Emacs Org-mode ihm der näheren Beschäftigung und der Auseinandersetzung mit englischer Dokumentation wert ist.

Dieser Text stellt also ausdrücklich keine grundlegende, systematische Einführung in den Emacs dar! Zu diesem Zweck gibt es bereits sehr gute (englische) Texte; auf einige verweise ich am Ende dieses Textes.

1.3 Aufgabenverwaltung im Emacs

Es geht in diesem Text um die Aufgabenverwaltung. Vielleicht noch eine kurze Bemerkung zum Sinn einer solchen Anwendung: Primär wird diese Softwaregattung unter dem Aspekt der Effizienz gesehen. Und es stimmt natürlich, dass eine gute Aufgabenverwaltung effizientes Arbeiten unterstützt. Doch meines Erachtens ist ein anderer Aspekt ebenso der Beachtung wert. Denn eine gute Aufgabenverwaltung gibt Sicherheit, nichts Wichtiges zu vergessen. Und dies führt zu deutlich mehr Gelassenheit im Alltag.

Doch genug der Esoterik. Jetzt geht es ans Eingemachte.

2 Installation des GNU Emacs

Der GNU Emacs ist für alle gängigen Plattformen verfügbar, fühlt sich aber aufgrund seiner Geschichte unter unixoiden Betriebssystemen (GNU/Linux, BSDs, Apple OS X) am wohlsten.

  • GNU/Linux. Alle gängingen Linux-Distributionen haben den Emacs in ihren Repositories. In der Regel ist er schnell installiert, beispielsweise via apt install emacs bei Debian-basierten Distributionen bzw. yum install emacs bei RedHat-basierten Distributionen. Möchte man den Emacs selbst kompilieren, können Sie die Quellen auch von gnu.org herunterladen.
  • Apple OS X. Unter OS X gibt es eine Reihe unterschiedlicher Möglichkeiten, den Emacs zu installieren. Verbreitet sind die Verwendung der Binaries von emacsformacosx.com oder die Installation über den Paketmanager Homebrew.
  • Microsoft Windows. Für Microsoft Windows findet man den Emacs auf dem FTP-Server des GNU Projekts.

3 Grundlagen

3.1 Emacs-spezifische Begriffe

Der Emacs stammt aus einer Zeit, in der graphische Benutzeroberflächen noch nicht verfügbar waren. Da sich die Entwickler graphischer Benutzeroberflächen später aus unerfindlichen Gründen nicht an die Emacs-Terminologie gehalten, gleichzeitig die Emacs-Entwickler aber an ihren Bezeichnungen festgehalten haben, gibt es einige Abweichungen (z.B. ist ein Fenster kein Window, sondern ein Frame; erst ein „Fenster im Fenster“ ist ein Window).

Da es sich bei diesem Text um ein einführendes Tutorial und keinen umfassenden Einführungstext zur Vermittlung der Emacs-Grundlagen handeln soll, belasse ich es an dieser Stelle bei diesem Hinweis. Im folgenden Text werde ich einzelne Emacs-spezifische Begriffe erklären, sofern dies für das Verständnis des Tutorials notwendig erscheint.

3.2 Tastenkombinationen

Emacs ist berüchtigt für seine (aus heutiger Perspektive) ungewöhnliche Bedienung. Der Emacs setzt auf sog. Modifier Keys; dies sind insbesondere Ctrl/Strg und die Meta-Taste, die in der Regel auf der Alt-Taste belegt ist.

  • Wenn Ctrl/Strg gemeint ist, wird zumeist C geschrieben.
  • Wenn die Meta-Taste gemeint ist, wird M geschrieben und dies ist – wie erwähnt – normalerweise auf der Alt-Taste belegt (auf dem Mac ggf. auch "Cmd").

Die Tastenkombination C-c C-c bedeutet beispielsweise, dass Sie die Ctrl-Taste gedrückt halten, während Sie zweimal c drücken. C-c c bedeutet hingegegen, dass Sie die Ctrl-Taste festhalten, einmal c betätigen, dann die Ctrl-Taste loslassen und erneut c drücken.

4 Erster Start des Emacs

Wenn Sie den Emacs zum ersten Mal starten, sollte Sie soetwas sehen:

Auf diesem Begrüßungsbildschrim finden Sie bereits erste interessante Verweise auf englischsprachige Dokumentation, die für unser Tutorial aber zu weit führen. Daher lassen Sie diese Verweise ruhig ersteinmal links liegen.

Statt dessen werden wir ein paar Anpassungen der Konfiguration vornehmen. Denn es wird Ihnen nicht entgangen sein, dass der Emacs in der Grundkonfiguration doch sehr langweilig aussieht. Zumindest wird das von den meisten Anwendern so empfunden.

Wir blenden zunächst die Tool-bar sowie die Scroll-bar aus. Wählen Sie dazu im Menü folgende Punkte an:

  • Options => Show/Hode => Tool-bar => None
  • Options => Show/Hide => Scroll-bar => None

Wenn Sie die Optionen für Tool-bar und Scrool-bar anklicken, sollte sich dieses direkt auf die Anzeige auswirken. Damit die Änderungen auch nach einem Neustart des Emacs noch vorhanden sind, müssen Sie die Anpassungen speichern.

  • Options => Save Options

In der Fußzeile des Emacs (dem sog. Mini Buffer) können Sie sehen, in welcher Datei der Emacs die Konfigurationsänderungen gespeichert hat. Bei mir ist es die Datei /home/hendrik/.emacs. Bei Ihnen kann es abhängig vom verwendeten Betriebssystem eine andere Datei sein.

Exkurs: Emacs-Konfiguration

An dieser Stelle bietet es sich an, ein paar Worte zur Konfiguration des Emacs zu verlieren. Wie in meinem Text Systematik der Emacs-Konfiguration beschrieben, gibt es unterschiedliche Möglichkeiten, Konfigurationen vorzunehmen. Eine Möglichkeit ist die Verwendung des Menüs, wie wir es soeben getan haben. Eine andere Möglichkeit ist, manuell Emacs Lisp Code in die Konfigurationsdatei zu schreiben.

Öffnen Sie die Datei, in der Emacs soeben Ihre Konfigurationsänderungen gespeichert hat. Sie sollten soetwas sehen:

Beachten Sie die Kommentare (Zeilen, die mit ";;" beginnen). Die Bereiche, die Emacs automatisch beim Speichern über das Menü erstellt hat, sollten Sie manuell nicht abändern. Sie können jedoch darüber oder darunter manuell Emacs Lisp Code ergänzen, um dem Emacs zu konfigurieren.

Wir ergänzen nun manuell eine Einstellung, die die Anzeige des Begrüßungsbildschirms beim Start unterdrückt. Ergänzen Sie den folgenden Text am Ende der Datei:

;; Keinen Splash-Screen
(setq inhibit-splash-screen t)

Dies ist ganz einfacher Emacs Lisp Code. Sie setzen den Wert der Variable inhibit-splash-screen auf t (wie True). So sollte Ihre Konfigurationsdatei nun aussehen:

Durch Schließen und erneutes Öffnen des Emacs können Sie überprüfen, ob die Einstellung erfolgreich war. Beim Neustart des Emacs sollte es nun so aussehen:

Jetzt wissen Sie also, wo Sie Konfigurationen des Emacs „hinschreiben“ müssen, damit der Emacs diese beim Start einliest. Dies soll hier zunächst für die Zwecke unseres Tutorials ausreichen.

Ein Hinweis sei aber noch erlaubt: Wenn Sie fortgeschritten im Umgang mit dem Emacs sind und umfangreiche Konfigurationen vornehmen, werden Sie irgendwann den Code besser organisieren wollen. Beachten Sie auch hierzu meinen Text Systematik der Emacs-Konfiguration, insbesondere die Ausführungen zur Strukturierung der Konfigurationsdatei mit dem Org-mode. Denn auch für diesen Zweck eignet sich der Org-mode sehr gut.

Lassen Sie uns noch eine weitere Einstellung ändern, bevor wir mit dem eigentlichen Tutorial starten. Denn schwarz auf weiß kann jeder; also verwenden wir doch ein schönes dunkles Farbschema. Dann sieht auch jeder, der Ihnen über die Schulter schaut, sofort, dass ein Profi am Werk ist. Nehmen Sie die folgende Anpassung vor:

  • Options => Customize Emacs => Custom Themes
  • unten „wombat“ auswählen
  • dann oben die Schaltfläche „Save Theme Settings“ wählen

Nun beenden Sie den Emacs und starten ihn neu. Ihr Emacs sollte nun die vorgenommenen und gespeicherten Konfigurationsänderungen wieder laden, so dass Ihr Emacs ungefähr so aussehen sollte:

Sofern Sie den Begrüßungsbildschrim wie im Exkurs oben beschrieben ausgeblendet haben, ist dieser natürlich nicht mehr zu sehen.

5 Was benötigen wir?

Kommen wir jetzt zum Thema Aufgabenverwaltung. Um ein rudimentäres System einzurichten, benötigen wir folgendes:

  • Wir benötigen eine Datei, in der wir einzelne Aufgaben notieren können. Bei größeren Projekten möchten wir Projektnotizen in einzelnen, gesonderten Dateien ablegen. Wir werden hier im Tutorial drei Dateien verwenden: die Datei tasks.org wird allgemeine Aufgaben enthalten; daneben gibt es noch die Dateien project1.org und project2.org.
  • Insbesondere in unseren umfangreicheren Projektnotizen möchten wir eine Outliner-Funktion nutzen können, wir möchten also Ebenen auf- und zuklappen können, um die Übersicht zu erleichtern.
  • Wir möchten in den Dateien Aufgaben definieren können, die verschiedene Stadien haben können. Wir belassen es bei den Grundstadien TODO und DONE.
  • Wir möchten Aufgaben auf bestimmte Tage legen – oder Deadlines vergeben können. Dafür benötigen wir Zeitangaben zu den Aufgaben.
  • Wir möchten eine Übersicht generieren können, in der für den Tag bzw. die Woche die relevanten Aufgaben angezeigt werden.
  • Wir möchten Aufgaben kategorisieren und entsprechende Übersichten auf Basis dieser Kategoriesierung anzeigen können.

Diese Elemente werden wir nun im Emacs Org-mode implementieren.

6 Implementierung

6.1 Verzeichnisse und Dateien anlegen

Legen wir zunächst die drei genannten Verzeichnisse und Dateien an.

Die Verzeichnisse können Sie natürlich auch über den Emacs anlegen (M-x make-directory RET dir/to/create RET). Der Einfachheit halber erstellen Sie die Verzeichnisse ~/org/ sowie ~/org/notes/ aber auch gerne wie Sie es gewohnt sind, z.B. im Dateimanager Ihrer Wahl – wir wollen die Sachen nicht gleich am Anfang unnötig verkomplizieren.

Wählen Sie nun jeweils entweder den Menüpunkt File => Visit New File oder nutzen Sie die Tastenkombination C-x C-f, um eine neue Datei zu erstellen. Abhängig von Ihrer verwendeten Systemumgebung erscheint nun entweder ein Dialog Ihres Betriebssystems, in dem Sie ggf. auch die Vereichnisse (hätten) anlegen können, oder aber der Emacs fordert Sie auf, einen Dateinamen in der Fußzeile (dem Mini Buffer) anzugeben.

Legen Sie die Datei ~/org/tasks.org mit folgendem Inhalt an:

Aufgabenliste

* TODO Termin mit Herrn Mayer vereinbaren
* TODO Präsentation erstellen

Denken Sie daran, die Datei mit C-x C-s oder File => Save über das Menü zu speichern.

Bei der Eingabe der Texte wird Ihnen auffallen, dass der Emacs sie teilweise farblich hervorgehoben anzeigt. Dies ist eine sog. Syntaxhervorhebung. Im Gegensatz zu Textverarbeitungsprogrammen wie Microsoft Word bedeutet dies jedoch nicht, dass diese Formatierung (beispielsweise der TODO-Markierungen) in der Org-mode-Datei als rot hervorgehoben definiert ist. Die Org-mode-Datei ist reiner Text; wenn Sie die Datei mit einem anderen Texteditor öffnen, wird der Text ohne Hervorhebungen angezeigt werden. Die farbigen Hervorhebungen sind also nicht in der Datei hinterlegt, sondern es werden die verschiedenen Schlüsselworte wie die TODO-Markierungen durch den Emacs Org-mode erkannt. In der Mode Line des Emacs (der „Statusleiste“ über dem Platz, an dem der Mini Buffer erscheint) sehen Sie, dass der Major-Mode „Org“ aktiviert ist. Wenn Sie eine Datei test.txt erstellen, so verwendet der Emacs nicht den Org-mode sondern einen einfachen Text-mode.

Exkurs: Modes

Versuchen Sie es ruhig einmal. Erstellen Sie die Datei ~/Desktop/test.txt und fügen Sie eine Aufgabe in der Org-mode-Syntax ein:

* TODO Testaufgabe

Sie werden sehen, dass der Emacs bei der Eingabe des TODO-Schlüsselwortes keine farbige Hervorhebung vornimmt. Da der Emacs jetzt im text-mode und nicht im org-mode ist, erkennt er die Aufgabe nicht als solche und aktiviert keine entsprechende Syntaxhervorhebung.

Jetzt geben Sie im Emacs M-x org-mode RET ein. Also halten Sie die Meta-Taste (Alt) fest und drücken Sie „x“, dann lassen Sie die Meta-Taste wieder los. Im Mini Buffer geben Sie nun „org-mode“ ein und bestätigen mit der Eingabetaste.

Sie sollten nun den Org-mode aktiviert haben. Sie erkennen es daran, dass unten in der Mode Line nun „Org“ statt „Text“ steht und der Emacs nun auch das Schlüsselwort „TODO“ in Ihrer Datei hervorgehoben haben sollte.

Was lernen wir daraus? Modes sind nicht zwingend mit einer Dateierweiterung wie .org oder .txt verbunden. Wenn Sie eine Datei erstellen oder öffnen und Emacs so konfiguriert ist, dass er die Dateiendung mit einem bestimmten Mode verknüpft, wird dieser Mode direkt gestartet. Für Dateien mit den Erweiterungen .org und .txt sieht die Grundeinstellung die Modes org-mode und text-mode vor; der Emacs könnte aber natürlich so konfiguriert werden, dass auch andere Modes gestartet werden. Und Sie können auch jederzeit interaktiv in einen anderen Mode wechseln, wie Sie eben gesehen haben (M-x org-mode RET oder M-x text-mode RET). Sie können also auch eine .txt-Datei im Org-mode bearbeiten.

Ich hoffe, diese Hinweise verwirren an dieser Stelle nicht zu sehr; für den Anfang und in der Praxis ist dies auch selten relevant. Dieses Wissen kann aber in bestimmten Fällen helfen, unerwartetes Verhalten des Emacs zu erklären. Mehr zu Modes des Emacs erfahren Sie bei Interesse im Emacs Manual unter Major and Minor Modes; der Titel verrät es bereits: es ist zu differenzieren zwischen Major Modes und Minor Modes. Aber das führt hier nun wirklich zu weit.

Nun legen Sie noch zwei weitere Dateien mit unseren Projektnotizen in dem Unterverzeichnis notes an:

Datei ~/org/notes/project1.org:

Projekt 1

* TODO Vor-Ort-Termin vereinbaren
* TODO Vor-Ort-Termin

Datei ~/org/notes/project2.org:

Projekt 2

* TODO Prüfungsumfang klären
* TODO Stellungnahme erstellen

Neue Aufgaben können Sie schlicht dadurch erfassen, dass Sie sie manuell in die jeweilige Datei eintragen. Der Org-mode gibt Ihnen dabei einige Tastenkombinationen an die Hand, um Aufgaben einfacher zu erstellen:

Gehen Sie an das Ende Ihrer Datei tasks.org und geben Sie M-RET ein. Es sollte ein neuer Eintrag generiert werden. Nun halten Sie die Umschalttaste (Shift) fest und drücken Sie den Pfeil nach rechts. Eine TODO-Markierung sollte ergänzt werden. Halten Sie die Umschalttaste noch einmal fest und drücken Sie den Pfeil nach oben; Sie sollten die Aufgabe nun mit der Angabe einer Priorität versehen haben.

Es gibt eine Reihe dieser Vereinfachungen zum Umgang mit Aufgaben im Org-mode. Am Ende dieses Tutorials finden Sie entsprechende Verweise; insbesondere – das sei hier vorweggenommen – ist es hilfreich, am Anfang die Org-mode Reference Card (PDF) neben sich liegen zu haben.

6.2 Ausgeben von Übersichten mit der Agenda

Wir haben nun verschiedene Aufgaben in unseren drei Dateien erfasst. Allerdings benötigen wir für die Arbeit natürlich einen Weg, eine Übersicht mit unseren Aufgaben zu generieren. Ansonsten müssten wir immer alle Notizdateien durchschauen, um unsere Aufgaben wiederzufinden. Und dann würden wir nicht den Org-mode brauchen, sondern könnten auch jeden einfachen Texteditor verwenden.

Beginnen wir mit einer Übersicht mit allen Aufgaben.

Rufen Sie die Org-agenda über das Menü auf (Org => Agenda Command) auf und versuchen Sie, sich eine Liste aller Aufgaben anzeigen zu lassen, indem Sie t aufwählen:

Es öffnet sich unten ein Fenster mit der Org-Agenda. Aber wie Sie sehen… sehen Sie nichts. Warum ist dies so? Der Org-Agenda muss zunächst mitgeteilt werden, welche Org-Dateien sie auf der Suche nach Aufgaben durchsuchen soll.

Öffnen Sie Ihre Konfigurationsdatei und ergänzen Sie den folgenden Emacs Lisp Code (passen Sie die Angabe ggf. an Ihren Speicherort an):

(setq org-agenda-files (quote 
   ("~/org/tasks.org"
    "~/org/notes/")))

Speichern Sie die Datei mit C-x C-s.

Damit erreichen Sie, dass sowohl die Datei tasks.org als auch alle Org-mode-Dateien im Unterverzeichnis notes durch die Org-Agenda durchsucht werden.

Exkurs: Konfiguration aktivieren

Damit die Konfiguration aktiv wird, muss der Befehl ausgeführt werden. Dies können Sie beispielsweise durch einen Neustart des Emacs erreichen. Eine andere Möglichkeit ist es, den Cursor hinter der letzten Klammer zu positionieren und mit C-x C-e die Funktion eval-last-sexp aufzurufen.

Rufen Sie nach Aktivierung der Konfiguration erneut die Agenda auf und wählen Sie wieder t, um eine Liste aller Aufgaben anzuzeigen. Nun sollten Sie folgendes sehen:

Es sollten die Aufgaben aus allen drei Dateien aufgelistet werden. Vorne in jeder Zeile erkennen Sie, aus welcher Datei die Aufgabe stammt.

Exkurs: Eigene Tastenkombinationen

Möglicherweise ist Ihnen aufgefallen, dass das Org-Menü nur dann verfügbar ist, wenn Sie eine Org-mode-Datei geöffnet haben (Emacs-Spezialisten werden einwenden, dass dies ungenau ist, da man beim Emacs zwischen Dateien auf der Festplatte und Buffers im Emacs differenziert; ich möchte es in diesem Tutorial jedoch einfach halten). Sie können die Org-Agenda unabhängig vom aktuellen Menü auch durch den Aufruf der Funktion org-agenda aufrufen. Dazu geben Sie zunächst M-x und anschließend org-agenda ein, gefolgt von der Eingabetaste.

Da dies etwas viel zu tippen ist, können Sie eine eigene Tastenkombination definieren. Für die Org-Agenda wird häufig C-c a verwendet, also Control festhalten, einmal c drücken, Control loslassen und dann a drücken. Wenn Sie diese Tastenkombination derzeit verwenden, sollte der Emacs im Mini Buffer folgendes melden: "C-c a is undefined".

Öffnen Sie wieder Ihre Konfigurationsdatei und ergänzen Sie unten folgende Definition:

;; Org-Agenda mit C-c a aufrufen 
(global-set-key "\C-ca" 'org-agenda)

Nach Aktivierung dieser Konfiguration (durch Neustart des Emacs oder Evaluation des Ausdrucks durch die Eingabe von C-x C-e hinter der letzten Klammer) sollten Sie die Org-Agenda von überall im Emacs aus mit der Tastenkombination C-c a aufrufen können.

6.3 Deadlines und andere Datumsangaben

Eine häufig genutzte Agenda-Übersicht ist die Tages- oder Wochenansicht, in der auch Deadlines angezeigt werden. Wenn Sie diese Agenda-Ansicht nun aufrufen (C-c a und dann a), wird Ihnen eine leere Wochenliste angezeigt. Dies liegt schlicht daran, dass wir noch keine Deadlines oder andere Datumsangaben bei unseren Aufgaben definiert haben.

Gehen Sie in eine der Org-Dateien, positionieren Sie den Cursor auf einer Aufgabe und geben Sie die Tastenkombination C-c C-d ein. Es sollte ein Kalender erscheinen:

Wenn Sie direkt mit der Eingabetaste bestätigen, wird das aktuelle Datum verwendet. Alternativ wählen Sie ein anderes Datum über Shift + Kursortasten aus und bestätigen Sie die Auswahl mit der Eingabetaste. Das Ergebnis sollte so aussehen; wir wählen hier den heutigen Tag:

Wenn Sie nun erneut die Org-Agenda aufrufen und mit a die Agenda für die aktuelle Woche wählen, sollte die Aufgabe mit der Deadline angezeigt werden:

Der Org-mode ermöglicht die verschiedenensten Angaben von Daten. Vgl. Sie dazu meine Emacs-Konfiguration.

6.4 Aufgaben, die alsbald erledigt werden sollen

Aufgaben, die an einem speziellen Tag zu erledigen sind, werden in der Regel mit C-c C-s „geschedulet“, Aufgaben, die bis zu einem bestimmten Tag erledigt werden müssen, bekommen eine Deadline. Doch was ist mit Aufgaben, die alsbald – aber nicht zwingend an einem bestimmten Tag – erledigt werden sollen?

Eine Möglichkeit ist, diese Aufgaben auch mit C-c C-s zu „schedulen“. Der Nachteil daran ist, dass es in der Agenda unschön aussieht, wenn Aufgaben in der Vergangenheit fällig waren, man sie aber noch nicht erledigt hat. Sie werden halt als überfällig dargestellt, obwohl sie es ja gar nicht sind.

Ich löse dieses kleine Problem dadurch, dass ich diese Aufgaben mit dem Tag „flagged“ versehe und eine angepasste Agenda-Ansicht verwende. Dann werden mir die Aufgaben immer in meiner Agenda angezeigt, aber sie sind nach einem bestimmten Datum nicht als überfällig markiert.

Gehen Sie in eine Ihrer Aufgabendateien, positionieren Sie den Cursor auf einer Aufgabe, die noch nicht mit einem Datum wie einer Dealine versehen wurde, und geben Sie C-c C-q ein. Unten im Mini Buffer schreiben Sie „flagged“ (ohne Anführungsstriche) und bestätigen Sie mit der Eingabetaste. Sie sollten nun einen Tag vergeben haben:

Eine solche Aufgabe können Sie über die Org-Agenda finden, indem Sie nach Aufgaben mit dem Tag „flagged“ suchen:

Wir möchten aber gerne eine kombinierte Übersicht, in der neben der Wochenansicht mit Aufgaben, die bestimmte Tagesereignisse aufweisen, auch die mit dem Tag „flagged“ versehenen Aufgaben angezeigt werden.

Gehen Sie in Ihre Konfigurationsdatei und ergänzen Sie die folgende Anweisung:

(setq org-agenda-custom-commands
      (quote (("f" "Agenda + flagged"
              ((tags "flagged")
               (agenda ""))))))

Aktivieren Sie diese Konfiguration und rufen Sie die Org-Agenda auf. Sie sehen einen neuen Befehl in der Übersicht:

Wählen Sie diese neue Agenda-Ansicht durch Eingabe von f aus:

Exkurs Weitere GTD-Elemente

Wie Sie in meinem Text zu meiner spezifischen Aufgabenverwaltung nachlesen können, verwende ich noch weitere Markierungen von Aufgaben und entsprechende Agenda-Ansichten. So versehe ich beispielsweise Aufgaben, die ich derzeit nicht erledigen kann, da ich auf den Abschluß einer Aktion eines Dritten warte, mit dem Status „WAITING“. Auch diese Aufgaben zeige ich in meiner Standard-Agenda.

Hier müssen Sie sehen, was Sie persönlich benötigen. Dies würde den Rahmen dieses Tutorials sprengen und – es wird gleich noch darauf eingegangen – es würde auch dem Sinn dieses Tutorials zuwiderlaufen.

6.5 Einfacher Zugriff auf die Dateien

Neben der Datei tasks.org haben wir für Projekte einzelne Dateien angelegt (derzeit project1.org und project2.org). Nun brauchen wir eine einfache Möglichkeit, auf diese Dateien zuzugreifen.

Die tasks.org definiere ich als Startdatei, d.h. sie soll beim Start des Emacs automatisch geöffnet werden. Dies erreiche ich durch folgende Einstellung:

;; tasks.org beim Emacs-Start laden
(find-file "~/org/tasks.org")

Doch wie erleichtere ich mir den Zugriff auf die Projektdateien? Der Emacs beinhaltet – wie sollte es auch anders sein – auch einen Dateimanager, d.h. er kann auch Verzeichnisinhalte auflisten. Für den Zugriff auf unsere Projektdateien hinterlegen wir in unsere tasks.org einen Link, der zu unserem Verzeichnis mit den Projektnotizen führt.

Gehen Sie in Ihrer tasks.org an die Stelle, an der Sie den Link einfügen möchten. Ich empfehle, den Link über den Aufgabendefinitionen anzubringen, beispielsweise ganz rechts neben der Überschrift (siehe Screenshot unten).

Dort geben Sie nun M-x org-insert-link RET ein. Als Link geben Sie das Verzeichnis mit Ihren Projektnotizen ein, bei mir ist es ~/org/notes/, als Beschreibung geben Sie zum Beispiel „Projektnotizen“ ein. Nun sollten Sie einen Link erstellt haben. Wenn Sie darauf klicken, sollte es so aussehen:

6.6 Export von Org-mode-Dateien

Der Org-mode verfügt auch über umfangreiche und flexible Möglichkeiten des Exports in die verschiedensten Formate. Gehen Sie in eine Ihrer Projektdateien und rufen Sie mit C-c C-e das Export-Menü auf.

Sie sehen hier, dass es eine Reihe von Einstellungen und Zielformaten gibt. Wählen Sie beispielsweise mit h und anschließend o den Export in HTML. Die exportierte Datei wird direkt in Ihrem Webbrowser geöffnet.

Das Layout können Sie natürlich ebenso wie andere Parameter umfassend konfigurieren, so dass Dokumente in Ihrem persönlichen oder Unternehmenslayout erstellt werden. Für den HTML-Export ist es beispielsweise sehr einfach, das Layout durch Übergabe von CSS-Definitionen anzupassen.

6.7 Ergebnisse

Fassen wir zusammen, was wir bisher in diesem Tutorial umgesetzt haben:

  • Sie wissen, wie Sie neue Org-mode-Dateien anlegen und einzelne Aufgaben erstellen.
  • Sie verfügen über projektspezifische Notizdateien sowie eine Datei tasks.org für Aufgaben, bei denen es sich nicht lohnt, diese in einer gesonderten Datei zu verwalten.
  • Sie können sich mit Hilfe der Org-Agenda Ansichten Ihrer Aufgaben nach verschiedenen Kriterien erstellen.
  • Sie können Ihre Projektnotizen exportieren.

Mit diesen Tools sollte es möglich sein, ein einfaches Projektmanagement im Emacs zu implementieren. Tasten Sie sich einfach langsam an eine für Ihre Zwecke sinnvolle Konfiguration heran.

7 Vor- und Nachteile

Der Emacs ist meiner Ansicht nach eine tolle Software – mit einer tollen Community. Doch natürlich gibt es neben den Licht- auch Schattenseiten. Meine persönliche Auflistung von Vor- und Nachteilen der Emacs-Nutzung für die Aufgabenverwaltung:

Vorteile:

  • Org-mode-Dateien sind Textdateien, daher maximal robust & zukunftssicher sowie durch Unix-Tools oder Scripts bearbeitbar.
  • Ich kann eine Versionsverwaltung wie Git verwenden.
  • Der Org-mode bewährt sich seit vielen Jahren täglich aufs Neue; bei mir und unzähligen anderen Anwendern.
  • Es gibt eine sehr nette, aktive und kreative Community rund um den Emacs und Org-mode.
  • Die Entwicklung einer eigenen Lösung für die Aufgabenverwaltung mit dem Framework Emacs zwingt dazu, sich eigene Gedanken zu machen, wie gewisse Probleme am besten zu lösen sind. Dies führt dazu, dass man die Probleme besser versteht – und auch zu besseren Lösungen findet als wenn man (vermeintlich) fertige Lösungen von der Stange verwendet.
  • Der Emacs ist für alle populären Betriebssysteme verfügbar.

Nachteile:

  • Da die Sternchen-Syntax sowohl für Aufgabendefinitionen als auch für die Gliederung verwendet werden, gibt es den grundsätzlichen Konflikt, wenn man umfangreiche Notizen schreiben und darin seine Aufgaben definieren möchte. Hilfreich in dieser Situation sind die Inline Tasks. Gänzlich zufriedenstellend finde ich diese Lösung jedoch nicht. Allerdings handelt es sich hier natürlich um ein grundlegendes und systematisches Problem, welches nicht so einfach lösbar ist.
  • Umgang mit Dateianhängen. Mit org-attach (C-c C-a) gibt es eine Funktion, beliebige Dateien an Aufgaben anzuhängen. Damit habe ich mich jedoch nie wirklich anfreunden können, so dass ich bis heute eine gesonderte Verzeichnisstruktur für die Dateiablage pflege, die nicht mit dem Org-mode integiert ist.

8 Was kann der Emacs noch?

Da der Emacs so etwas wie eine Applikationsplattform ist – und bereits seit Jahrzehnten besteht – wurden unzählige Lösungen erarbeitet, die über die Kernfunktionen eines Texteditors weit hinausgehen. Für einige ist der Emacs daher zu einer Art zweitem Betriebssystem, zur wichtigsten Anwendung in der täglichen Arbeit, geworden. So lassen sich im Emacs beispielsweise die folgenden Aufgaben erledigen:

  • Textverarbeitung. Wenn man nicht auf WYSIWYG-Editoren wie Microsoft Word oder OpenOffice Writer setzen möchte, sondern gerne textbasiert schreibt, um beispielsweise auch die Vorteile einer guten Versionsverwaltung wie Git zu nutzen, ist man mit dem Emacs Org-mode sehr gut bedient. Der Emacs ist in der techniknahen, aber auch nicht so techniknahen Wissenschaft stark vertreten. Auch wenn man ungerne LaTeX direkt schreiben möchte, bietet sich der Org-mode an. Die Org-mode Syntax ist sehr eingängig und es werden alle Formatierungen und Funktionen geboten, die man auch zur Erstellung wissenschaftlicher Arbeiten benötigt. Ein besonderer Vorteil ist zudem org-babel, das es ermöglicht, ausführbaren Code innerhalb des Dokuments zu platzieren. Weitere Informationen dazu finden Sie auf der Seite Babel: active code in Org-mode.
  • Export. Org-mode-Dokumente können in diverse Formate exportiert werden (Text, HTML, ODT, PDF via LaTeX etc.). Auch dieser Text ist im Org-mode geschrieben und wurde über den HTML-Export exportiert.
  • Zeiterfassung. Der Org-mode verfügt über Funktionen zur Erfassung von Zeiten auf Aufgaben. Diese Daten können anschließend auf verschiedenen Wegen, beispielsweise über die Org-Agenda ausgewertet werden.
  • Versionsverwaltung. Da alles Text ist, kann man von den Vorteilen einer Versionsverwaltung wie Git profitieren. Und mit Magit verfügt der Emacs über eine sehr leistungsfähige Bedienoberfläche für diese Versionsverwaltung.
  • Deft. Ich verwalte meine Projektnotizen gerne in einzelnen Org-mode-Dateien, habe also für jedes größere Projekt eine eigene Datei. Um dennoch eine Volltextsuche über alle Dateien hinweg zu ermöglichen, verwende ich Deft. Diese Erweiterung des Emacs wurde durch Notational Velocity inspiriert.
  • E-Mail mit Org-mode-Integration. Viele Aufgaben erreichen uns heute per E-Mail. Da ist es sehr praktisch, eine Aufgabe direkt aus einer E-Mail heraus erstellen zu können und dabei den Bezug zur E-Mail beizubehalten. Dies ist sehr einfach möglich, wenn man einen der E-Mail-Clients verwendet, die im Emacs laufen. Es gibt jedoch auch Lösungen, um den Emacs mit anderen E-Mail-Programmen wie Apple Mail oder sogar Microsoft Outlook zu integrieren.
  • Webbrowsen. Es gibt sowar Webbrowser für den Emacs. Diese sind in der Regel allerdings heutzutage wenig praxistauglich, da sie doch eine sehr rudimentäre Funktionalität bieten.

Diese Liste könnte immer weiter geführt werden. Einen schönen Eindruck von den Möglichkeiten des Emacs kann man sich auch auf emacsrocks.com verschaffen.

9 Wie geht es weiter?

Sicherlich ist der Emacs nicht für jedermann; das ist auch vollkommen in Ordnung. Da es sich beim Emacs um ein Open Source Projekt und kein kommerzielles Produkt handelt, muss niemand überzeugt werden, den Emacs zu verwenden. Der Emacs wurde und wird von Enthusiasten entwickelt, um Probleme zu lösen, die diese Enthusiasten zumeist selbst hatten. Wenn der Emacs auch Ihnen hilft, Ihre Probleme zu lösen, wunderbar, doch wenn Sie mit dem Emacs nichts anfangen können, ist dies ebenso in Ordnung. Der Emacs steht Ihnen jedoch jederzeit zur Verfügung – allerdings selbstverständlich ohne ein Recht auf Support oder Gewährleistung! Die Community teilt gerne und unterstützt bei der Selbsthilfe; sie ist aber nicht dafür da, uns die Arbeit abzunehmen. Wir sollten zunächst immer erst den eigenen Kopf anstrengen, bevor wir jemand anderen darum bitten, seine – sicherlich spärliche – Freizeit mit der Lösung unserer Problemen zu verbringen.

Wenn dieser Text Sie motiviert hat, sich intensiver mit dem Emacs zu befassen, möchte ich abschließend auf einige Quellen verweisen, mit denen Sie weiter arbeiten können. Und dies ist auch der Zeitpunkt, da Sie um englische Texte vermutlich nicht mehr herum kommen, sofern Sie Ihre Arbeit mit dem Emacs vertiefen möchten.

9.1 Zunächst eigene Anforderungen klären

Bevor Sie sich auf persönliche Emacs-Konfigurationen anderer Anwender stürzen, möchte ich noch eine Empfehlung aussprechen. Ansonsten werden Sie sehr viel unproduktive Zeit mit dem Emacs verbringen.

Denn auch wenn man eigentlich meinen sollte, dass wir alle die gleichen Probleme im Projektmanagement lösen müssen, stelle ich immer wieder fest, dass es keine zwei gleichen Konfigurationen von Nutzern gibt. Projekte unterscheiden sich; Sturukturen in Unternehmen unterscheiden sich; persönliche Vorlieben unterscheiden sich. Daher ist es in der Regel auch nicht sinnvoll, die Konfiguration anderer ungeprüft zu übernehmen. Das wäre auch schade, denn der Emacs und der Org-mode sind so flexible Werkzeuge, dass Sie damit Ihre spezifischen Anforderungen umsetzen können. Sie müssen sich also nicht mit einer Lösung abgeben, die entwickelt wurde, um die Probleme anderer zu lösen. Sie können eine Lösung entwickeln, die Ihre spezifischen Probleme optimal löst.

Machen Sie sich also zunächst Gedanken über Ihre spezifischen Anforderungen und implementieren Sie eine entsprechende Lösung. Natürlich ist es sinnvoll, Konfigurationen anderer Nutzer einzusehen. Verstehen Sie diese jedoch als Anregungen – übernehmen Sie diese nicht ungeprüft. Damit würden Sie sich um die Chance bringen, eine für Sie optimale Lösung zu finden.

Schnell erliegt man auch der Versuchung, viele technisch ausgefeilte Funktionen zu implementieren, nur weil man es kann. Sinnvoller ist es in der Regel, ein minimalistisches System zu implementieren, d.h. alle Funktionen, die man in seiner spezifischen Situation benötigt – aber eben auch nur diese. Und keinen Schnickschnack.

Wenn man dies beherzigt, bietet der Emacs Org-mode meiner Erfahrung nach großes Potential, das Projektmanagement zu unterstützen.

Auf der anderen Seite gilt natürlich: wenn Sie Spaß daran haben oder erst noch entwickeln, sich mit einer Software wie dem Emacs auseinander zu setzen, ist es ein wunderbarer Zeitvertreib. Im Gegensatz zu anderen Hobbys hat dieser Zeitvertreib sogar noch positive Nebeneffekte auf das Arbeitsleben.

9.2 Bedienung der Editorfunktionen

Spätestens wenn Sie sich dafür entscheiden, den Emacs ernsthaft zu verwenden, bietet es sich an, die Bedienung der Editorfunktionen wirklich zu erlernen. Der Emacs liefert dafür bereits ein Tutorial mit – sogar in deutscher Sprache. Wählen Sie im Menü unter „Help“ den Punkt „Emacs Tutorial (choose language)“ und anschließend in dem sich unten öffnenden Fenster die Sprache „German“.

Der Emacs ist für die Bedienung mit der Tastatur ausgelegt. Verzichten Sie möglichst frühzeitig auf die Maus, wenn Sie effizient arbeiten möchten.

Was in diesem Tutorial auch nur angedeutet wurde ist, dass der Org-mode im Kern ein Outliner ist, der Ebenen mit einem oder mehreren Sternchen beginnt. Für das Tutorial war dies nicht entscheidend, aber möglicherweise werden Sie schnell darüber stolpern; daher sei hier noch kurz darauf eingegangen. Vermutlich ist es am einfachsten, wenn Sie es einfach ausprobieren. Geben Sie den folgenden Text in eine Org-mode-Datei ein:

* Überschrift erster Ebene

Hier steht Text.

* Überschrift erster Ebene

Hier steht Text.

** Überschrift zweiter Ebene

Hier steht Text.

** Überschrift zweiter Ebene

Hier steht Text.

* Überschrift erster Ebene

Hier steht Text.

Wenn Sie die Datei frisch im Emacs öffnen, wird Ihnen auffallen, dass Sie nur die Überschriften erster Ebene sehen. Die anderen Überschriften und die Texte sind eingeklappt. Sie können „global“ alle Ebenen auf- und zuklappen, indem Sie die Umschalttaste (Shift) festhalten und mehrfach die Tabulator-Taste bedienen. Einzelne Ebenen klappen Sie auf und zu, indem die den Cursor darauf platzieren und nur die Tabulator-Taste verwenden. Versuchen Sie es einfach. Beim ersten Bedienen der Tabulator-Taste klappt die aktuelle Ebene auf, beim zweiten Mal alle weiteren und beim dritten Mail klappt wieder alles zusammen.

Auf diese Weise können Sie Hierarchien erstellen und mit ihnen arbeiten. Der Org-mode verwendet diese Syntax sowohl für Aufgaben als auch für Überschriften, wenn Sie Texte im Org-mode schreiben. Etwas kniffelig wird es, wenn Sie Textgliederung und Aufgabendefinitionen kombinieren möchten, vgl. dazu meine Bemerkung oben bei den Nachteilen des Org-mode.

9.3 Weiterführende Informationen

Kommen wir zu weiterführenden Informationen. Zunächst möchte ich natürlich auf meine eigenen, weiterführenden Texte zum Emacs verweisen – diese sind auch in deutscher Sprache. Für Einsteiger, also als Anschluss an dieses Tutorial bieten sich meines Erachtens nach die folgenden Quellen besonders an:

  • Die offizielle Dokumentation des Org-mode im Org-mode Manual (HTML bzw. PDF) sowie dem Org-mode Compact Guide (HTML bzw. PDF).
  • Mickey Petersen bietet auf seiner Internetseite Mastering Emacs sehr gute Texte. Er hat auch unter diesem Titel ein Buch zum Emacs veröffentlicht, welches jedoch kostenpflichtig – aber eine lohnenswerte Investition – ist.

Wenn Sie gerne Vorträge ansehen, kann ich auch folgendes empfehlen:

Eher für Fortgeschrittene Nutzer sinnvoll und mit sehr vielen Anregungen gespickt ist der Text von Bernt Hansen Org Mode - Organize Your Life In Plain Text!.

Übrigens: Um sich die wichtigsten Tastenkombinationen schneller merken zu können, bietet es sich an, die Reference Cards des Emacs und des Org-mode zu verwenden:

Wenn Sie ganz ambitionniert sind, lernen Sie das Programmieren in Emacs Lisp (lesen Sie beispielsweise An Introduction to Programming in Emacs Lisp, eine Einführung in die Programmierung in der Sprache Emacs Lisp, die im Übrigen auch mit Ihrem Emacs mitgeliefert wurde und über die Tastenkombination C-h i und dann m Emacs Lisp Intro RET). Dann können Sie auch komplexe Konfigurationen des Emacs selbst vornehmen und vielleicht sogar eigene Erweiterungen schreiben.

Exkurs: Emacs Starter Kits

Der Emacs ist in der Grundkonfiguration sehr spartanisch und sieht nicht sonderlich modern aus. Mit einigen Anpassungen lässt sich dies durchaus ändern. Es gibt mittlerweile einige Projekte, die eine „modernere“ Grundkonfiguration des Emacs frei Haus liefern. Zu nennen sind beispielsweise Spacemacs und Prelude.

Auch wenn dies tolle Projekte sind und man sehr schnell zu einem gut funktionierenden Emacs kommt, setze ich persönlich lieber auf dem originalen Emacs auf und erstelle meine eigene Konfiguration. Dies liegt vor allem daran, dass die Starter Kits sehr komplex sind und man sich in einer solchen Komplexität nur dann zurecht findet, wenn man sie selbst „verbrochen“ hat. Solange alles funktioniert, ist alles gut; taucht jedoch mal ein Problem auf, ist dieses nicht immer leicht zu lösen, wenn man eine sehr komplexe, einem persönlich unbekannte Konfiguration verwendet. Da sich die meisten Informationen im Internet auf einen „naturbelassenen“ Emacs beziehen und nicht beispielsweise auf Spacemacs, stellt sich eine Problemlösung ggf. kompliziert dar.

Bei den genannten Projekten kann man sich meines Erachtens wunderbar Anregungen für Konfigurationen holen. Ich persönlich würde jedoch dazu raten, eine eigene Konfiguration ausgehend von einem „naturbelassenen“ Emacs zu entwickeln.

10 Viel Spaß!

Zum Schluß bleibt mir nur, Ihnen viel Spaß mit dem Emacs zu wünschen. Ich hoffe, dieses Tutorial war hilfreich und ich habe Sie nicht abgeschreckt, sondern motiviert, sich näher mit dem Emacs zu beschäftigen. Mir macht es zumindest immer wieder Freude, mir zu überlegen, wie ich den Emacs als Framework zur Lösung von Problemen einsetzen kann. Der Emacs war in den Jahren schon häufig meine Geheimwaffe wenn es um textbasierte Arbeit ging.

Schreiben Sie mir gerne eine Nachricht an mailbox@suenkler.info, wenn Sie Anmerkungen zu diesem Text haben.