Wie kann ich eine Agenda-Timeline-Ansicht mehrerer Dateien haben?

7

Ich verwende den Organisationsmodus als Wissensdatenbank, wobei jede Datei für ein bestimmtes Projekt bestimmt ist, an dem ich arbeite.

Jede Datei hat ein eigenes Tagebuch und ich würde gerne ein aggregiertes Tagebuch aller Dinge sehen, die ich getan habe.

Diese Informationen befinden sich in einer Reihe von .orgDateien in einem bestimmten Verzeichnis.

Die Funktionalität, nach der ich suche, entspricht der Agenda-Zeitleiste, funktioniert jedoch nur für eine Datei.

Gibt es eine Möglichkeit, damit es für alle Dateien in funktioniert org-agenda-files?

edmz
quelle
Dies scheint ein Duplikat der Frage Timelineview of all agenda fileszu sein unix.SE.
Elemakil
Du hast recht. Wird versucht, Emacs-Fragen von anderen SO zu migrieren? (Ich weiß nicht, ob das möglich ist. Ich könnte mit dieser Anstrengung helfen)
edmz
Emacs-Fragen von Stack Overflow oder Super User sind meiner Meinung nach die offizielle Richtlinie für doppelte Fragen und Migration. IMO, diese andere Frage ist gut für die Migration hierher, da sie grenzwertig ist unix.SEund hier wahrscheinlich eine bessere Antwort bekommen könnte.
lila_Pfeile
1
@purple_arrows Unabhängig von der Richtlinie kann die Frage, mit der elemakil verknüpft ist, nicht migriert werden, da sie viel älter als 60 Tage ist .
Itsjeyd
@itsjeyd Doh! Na sicher. Vielen Dank für den Hinweis.
lila_Pfeile

Antworten:

2

Basierend auf den in dieser Antwort enthaltenen Vorschlägen sammelt der folgende Befehl den Inhalt aller org-agenda-filesin einer einzigen Datei und ruft dann den org-agendaBefehl auf, der die Zeitachse erstellt:

(defun org-agenda-timeline-all (&optional arg)
  (interactive "P")
  (with-temp-buffer
    (dolist (org-agenda-file org-agenda-files)
      (insert-file-contents org-agenda-file nil)
      (end-of-buffer)
      (newline))
    (write-file "/tmp/timeline.org")
    (org-agenda arg "L")))

Richten Sie für optimale Ergebnisse eine benutzerdefinierte Schlüsselbindung für diesen Befehl über ein

(define-key org-mode-map (kbd "C-c t") 'org-agenda-timeline-all)

Außerdem , wenn Sie den Befehl wollen alle prüfen , org-modeDateien , die derzeit geöffnet ist (zusätzlich Sie org-agenda-files, die möglicherweise nicht geöffnet sein), können Sie ersetzen org-agenda-filesmit einem Aufruf (org-files-list)in dem obigen Code.

itsjeyd
quelle
1
Das Problem bei der Verwendung von org-Agenda-Dateien ist, dass der Code nicht funktioniert, wenn es sich um ein Verzeichnis handelt.
Edmz
@ lal00 - ersetzen org-agenda-filesmit (org-agenda-files t), dieses Problem zu lösen.
Sridhar Ratnakumar
Das andere Problem bei diesem Ansatz ist, dass Ihnen der Verweis auf die ursprüngliche .org-Datei fehlt. Ich möchte sowohl wissen, woher eine bestimmte abgeschlossene Aufgabe stammt, als auch in der Lage sein, zu dieser .org-Datei (oder ihrer Archivdatei) zu navigieren.
Sridhar Ratnakumar
1

Es ist nicht ganz identisch mit der Zeitleiste, aber Sie können eine benutzerdefinierte Agenda-Ansicht erstellen, die eine gewisse Zeitspanne im "Protokollmodus" anzeigt. Durch lokales Binden org-agenda-filesim Agenda-Befehl können wir alle gewünschten Dateien laden, ohne das normale Verhalten zu beeinträchtigen. Dies dauert eine Woche, ändern Sie org-agenda-spandie Anzahl der gewünschten Tage.

(defvar org-timeline-files nil
  "The files to be included in `org-timeline-all-files'. Follows
  the same rules as `org-agenda-files'")

(setq org-timeline-files '("/path/to/org/files/"))

(add-to-list 'org-agenda-custom-commands
             '("R" "Week in review"
                agenda ""
                ;; agenda settings
                ((org-agenda-span 'week)
                  (org-agenda-start-on-weekday 0) ;; start on Sunday
                  (org-agenda-overriding-header "Week in Review")
                  (org-agenda-files 
                    (let ((org-agenda-files org-timeline-files))
                          (org-agenda-files nil 'ifmode)))
                  (org-agenda-start-with-log-mode t)
                  (org-agenda-log-mode-items '(clock state))
                  (org-agenda-archives-mode t) ; include archive files
                )))
erikstokes
quelle