Có cách nào đơn giản để sử dụng tất cả các tệp org được tham chiếu trong tệp chính cho bảng đồng hồ chế độ org không


9

Tôi đang sử dụng chế độ org để theo dõi thời gian tôi dành cho các dự án khác nhau. Tôi có một tệp org chính và hai tệp nữa cho hai dự án lớn tôi đang thực hiện. Cả ba đều được liệt kê trong org-agenda-files. Tôi đã tạo một bảng đồng hồ trong tệp org chính và đặt

:scope agenda-with-archives

trong tiêu đề đồng hồ để tóm tắt thời gian sử dụng. Tất cả điều này hoạt động tốt.

Tuy nhiên, tôi cũng có một vài dự án nhỏ hơn cũng có thời gian theo dõi trong tệp org của riêng họ (nằm trong thư mục con chứa mọi thứ về các dự án đó) và tôi cũng muốn theo dõi thời gian trong những dự án đó.

Tất nhiên tôi có thể thêm các tệp đó vào org-agenda-files, nhưng điều đó có nghĩa là cập nhật .emacsmỗi khi tôi bắt đầu một dự án nhỏ mới. Tất nhiên không phải là ngày tận thế, nhưng vì tôi đã có một liên kết đến các tệp dự án nhỏ trong tệp org chính (xem ví dụ bên dưới), tôi muốn đặt thành :scopemột cái gì đó như

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

Lý tưởng nhất (mặc dù tôi chưa sử dụng điều đó) bao gồm các tệp lưu trữ của các dự án nhỏ hơn đó sẽ rất tuyệt (giống như :scope linked-org-files-with-archives).

Dưới đây là một ví dụ về cách cấu trúc tệp org chính của tôi:

* 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.

Bất kỳ ý tưởng về làm thế nào để đạt được điều này?

Câu trả lời:


6

Bạn có thể dùng

:scope some-function

nơi hàm some-functiontrả về danh sách các tập tin cần thiết. Ví dụ:

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

hoặc là

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

(defun some-function () org-agenda-files)với :scope (some-function)tôi không làm việc và không được đề cập trong các tài liệu. Nó vẫn được hỗ trợ?
avv

Phiên bản nào của chế độ org bạn sử dụng? Có bất kỳ lỗi được tạo ra?
Artscan

1
Lisp error: (wrong-type-argument stringp some-function). Chế độ Org phiên bản 9.0.7
avv

Đã chỉnh sửa để sửa dòng phạm vi - cần sửa các lỗi lisp.
NickD

3

Tôi cũng gặp rắc rối với điều này.

Câu trả lời của @ Artscan đã chỉ cho tôi đi đúng hướng, nhưng trả về một argument typelỗi. Thả dấu ngoặc đơn giải quyết vấn đề.

Tôi muốn bình luận về câu trả lời của Artscan, nhưng tôi không có đủ danh tiếng.

Tóm lại, đây là những gì tôi sử dụng:

Trong bảng, cung cấp :scope efls/org-files-productive. Không có dấu ngoặc đơn. Xác định một hàm đơn giản để trả về một chuỗi các tệp.

Ví dụ, tôi sử dụng một cái gì đó như thế này:

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

Bạn có thể, tất nhiên, cũng chỉ đơn giản là gõ vào một danh sách các tập tin sau khi :scope, nhưng sau đó bạn làm ngoặc cần kèm theo danh sách: scope: ("Users/efls/org/file1.org" "…").

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.