Apakah ada cara sederhana untuk menggunakan semua file org yang direferensikan dalam file utama untuk tabel jam mode org


9

Saya menggunakan mode-org untuk melacak waktu yang saya habiskan di berbagai proyek. Saya punya satu file org utama dan dua lagi untuk dua proyek besar yang sedang saya kerjakan. Ketiganya terdaftar di org-agenda-files. Saya membuat tabel jam di file org utama dan mengatur

:scope agenda-with-archives

di header tabel jam untuk merangkum waktu yang dihabiskan. Ini semua berfungsi dengan baik.

Namun, saya juga memiliki beberapa proyek kecil yang juga memiliki waktu dilacak dalam file org mereka sendiri (terletak di subdirektori yang berisi segala sesuatu tentang proyek-proyek itu), dan saya juga ingin melacak waktu pada proyek-proyek itu.

Tentu saja saya dapat menambahkan file-file itu org-agenda-files, tetapi itu berarti memperbarui saya .emacssetiap kali saya memulai proyek kecil baru. Bukan akhir dari dunia tentu saja, tetapi karena saya sudah memiliki tautan ke file proyek-kecil-org dalam file org utama (lihat contoh di bawah), saya ingin mengatur :scopeseperti

:scope agenda-with-archives linked-org-files

Idealnya (walaupun saya belum menggunakannya) termasuk arsip file proyek-proyek kecil itu akan bagus untuk (sesuatu seperti :scope linked-org-files-with-archives).

Berikut adalah contoh bagaimana struktur file org utama saya:

* Small project 1
  See file:~/Projects/Project 1/notes_project_1.org for more details.
* Small project 2
  See file:~/Projects/Project 2/notes_project_2.org.
** DONE Some small task I can do quickly
   CLOCK: [2014-12-05 vr 12:19]--[2014-12-05 vr 12:40] =>  0:21
   Some info on the small task.

Adakah cara untuk mencapai ini?

Jawaban:


6

Kamu bisa menggunakan

:scope some-function

di mana fungsi some-functionmengembalikan daftar file yang diperlukan. Sebagai contoh:

(defun some-function () org-agenda-files)

atau

(defun some-function ()
  (append org-agenda-files
          (file-expand-wildcards "your-path/*.org")))

(defun some-function () org-agenda-files)dengan :scope (some-function)tidak bekerja untuk saya, dan tidak disebutkan dalam dokumen. Apakah masih didukung?
avv

Versi mode-org mana yang Anda gunakan? Apakah ada kesalahan yang terjadi?
artscan

1
Lisp error: (wrong-type-argument stringp some-function). Org mode versi 9.0.7
avv

Diedit untuk memperbaiki garis ruang lingkup - yang seharusnya memperbaiki kesalahan lisp.
NickD

3

Saya juga mengalami masalah dengan ini.

@ artscan jawaban menunjuk saya ke arah yang benar, tetapi mengembalikan argument typekesalahan. Menjatuhkan tanda kurung memecahkan masalah.

Saya akan mengomentari jawaban artscan, tetapi saya tidak memiliki reputasi yang cukup.

Untuk meringkas, maka, inilah yang saya gunakan:

Di dalam tabel, berikan :scope efls/org-files-productive. Tidak ada tanda kurung. Tentukan fungsi sederhana untuk mengembalikan serangkaian file.

Sebagai contoh, saya menggunakan sesuatu seperti ini:

(defun efls/org-files-productive ()
 "Return productive org files."
 '("/Users/efls/org/file1.org" "/Users/efls/org/file2.org" "/Users/efls/org/file3.org"))

Anda bisa, tentu saja, juga cukup mengetik daftar file setelah :scope, tapi kemudian Anda lakukan kurung perlu melampirkan daftar: scope: ("Users/efls/org/file1.org" "…").

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.