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.
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.
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.
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.
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.
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.
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.
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.
C
geschrieben.
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.
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:
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.
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.
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:
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.
Kommen wir jetzt zum Thema Aufgabenverwaltung. Um ein rudimentäres System einzurichten, benötigen wir folgendes:
tasks.org
wird allgemeine
Aufgaben enthalten; daneben gibt es noch die Dateien project1.org
und project2.org
.
Diese Elemente werden wir nun im Emacs Org-mode implementieren.
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.
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.
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.
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.
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.
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.
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:
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.
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:
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.
Fassen wir zusammen, was wir bisher in diesem Tutorial umgesetzt haben:
tasks.org
für Aufgaben, bei denen es sich nicht lohnt, diese in
einer gesonderten Datei zu verwalten.
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.
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:
Nachteile:
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.
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:
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.
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.
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.
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.
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.
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:
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.
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.
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.