Ký tự đại diện trong tập tin org-agenda


10

Tôi có một thư mục cơ sở dự án, ~/prj, bên trong mà tôi có nhiều dự án cá nhân, 2014_prj1, 2014_prj2, ..., bên trong mà tôi có, trong số những người khác, một docthư mục. Bố cục trông như thế này:

~/prj
~/prj/2014_prj1
~/prj/2014_prj1/README.org
~/prj/2014_prj1/data
~/prj/2014_prj1/doc
~/prj/2014_prj2
~/prj/2014_prj2/README.org
~/prj/2014_prj2/data
~/prj/2014_prj2/doc

Bây giờ tôi muốn thêm tất cả các thư mục dự án ( 2014_prjX) vào org-agenda-files, cũng như tất cả các docthư mục con của các thư mục dự án. Các datathư mục không nên là một phần của org-agenda-files, vì chúng có thể chứa 10000 tệp.

Làm thế nào tôi có thể đạt được điều này? Tôi đã thử một cách đơn giản

(setq org-agenda-files (quote ("~/doc/notes"
                               "~/.emacs.d"
                               "~/prj/*/doc"
                               )
                        )

nhưng điều này cho tôi lỗi

Non-existing agenda file ~/prj/*/doc

Câu trả lời:


19

Bạn có thể sử dụng hàm file-expand-wildcardsđể lấy tất cả các tệp khớp với ký tự đại diện thêm chúng vào org-agenda-filesbiến. Một cái gì đó như sau

(setq org-agenda-files (append '("~/doc/notes" "~/.emacs.d") (file-expand-wildcards "~/prj/*/doc")))

Có một cái móc nào cho phép tập hợp các tập tin được tính toán linh hoạt không? Ví dụ: nếu tôi thêm một .orgtệp mới sau khi tôi bắt đầu emacs, tôi vẫn muốn nó là một phần của nó org-agenda-files.
— John Wiseman

1

Tôi đã tạo ra một cách tiếp cận chung hơn, cho phép bạn có lồng nhau sâu hơn. Ví dụ: tôi có một cây ghi chú phong phú và một số thư mục có tệp task.org trong đó. Mã này sẽ thu thập tất cả các con ruồi:

(defun set-org-agenda-files ()
  (require 'f)
  (require 's)

  (setq org-agenda-files
    (f-entries org-directory
               (lambda (filename)
                 (s-ends-with-p "/tasks.org" filename))
               t)))
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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.