ディレクトリに名前を付けるだけで十分です。たとえば、これは私にとって非常にうまく機能します:
(setq org-agenda-files '("~/org"))
も見てくださいorg-agenda-text-search-extra-files
。テキスト検索のみに含まれるファイルを追加できます。典型的な値は、
(setq org-agenda-text-search-extra-files
'(agenda-archives
"~/org/subdir/textfile1.txt"
"~/org/subdir/textfile1.txt"))
警告: Emacs の起動後にディレクトリにファイルを追加しても、そのファイルは含まれません。
編集:(2018)特定の拡張子を持つすべてのファイルを追加ファイルリストに含めるには、以前に書いた次の機能を試すことができます(より最近のバージョンはここで入手できる可能性があります)。
;; recursively find .org files in provided directory
;; modified from an Emacs Lisp Intro example
(defun sa-find-org-file-recursively (&optional directory filext)
"Return .org and .org_archive files recursively from DIRECTORY.
If FILEXT is provided, return files with extension FILEXT instead."
(interactive "DDirectory: ")
(let* (org-file-list
(case-fold-search t) ; filesystems are case sensitive
(file-name-regex "^[^.#].*") ; exclude dot, autosave, and backupfiles
(filext (or filext "org$\\\|org_archive"))
(fileregex (format "%s\\.\\(%s$\\)" file-name-regex filext))
(cur-dir-list (directory-files directory t file-name-regex)))
;; loop over directory listing
(dolist (file-or-dir cur-dir-list org-file-list) ; returns org-file-list
(cond
((file-regular-p file-or-dir) ; regular files
(if (string-match fileregex file-or-dir) ; org files
(add-to-list 'org-file-list file-or-dir)))
((file-directory-p file-or-dir)
(dolist (org-file (sa-find-org-file-recursively file-or-dir filext)
org-file-list) ; add files found to result
(add-to-list 'org-file-list org-file)))))))
次のように使用できます。
(setq org-agenda-text-search-extra-files
(append (sa-find-org-file-recursively "~/org/dir1/" "txt")
(sa-find-org-file-recursively "~/org/dir2/" "tex")))
編集: (2019) @mingwei-zhang の回答と @xiaobing のコメントで言及されているように、このfind-lisp-find-files
機能も提供しています。ただし、これらの場合、ファイル名の引数は (貪欲な) 正規表現であることに注意してください。したがって、次のようなものは、バックアップ ファイル ( ) を含むすべての Org ファイルを提供します。ファイルのみを含めるには、 .find-lisp
directory-files-recursively
(directory-files-recursively "~/my-dir" "org")
*.org~
*.org
(directory-files-recursively "~/my-dir" "org$")