私は org-mode とorg-attachを広範囲に使用しています。つまり、1 つの組織ファイルに関連付けられた多くの添付ファイル ディレクトリが存在する可能性があります。
worg で、ファイル全体に属するすべての添付ファイルを表示し、ido で参照できる Matt Lundi の関数を見つけました。
この関数をサブツリーに制限したいと思います。これにより、私のユースケースでより便利になります。
私はemacsを初めて使用するわけではありませんが、ほぼ完全にelispの読み書きができないため、ここで質問しています。
これは機能です:
(defun my-ido-find-org-attach ()
"Find files in org-attachment directory"
(interactive)
(let* ((enable-recursive-minibuffers t)
(files (find-lisp-find-files org-attach-directory "."))
(file-assoc-list
(mapcar (lambda (x)
(cons (file-name-nondirectory x)
x))
files))
(filename-list
(remove-duplicates (mapcar #'car file-assoc-list)
:test #'string=))
(filename (ido-completing-read "Org attachments: " filename-list nil t))
(longname (cdr (assoc filename file-assoc-list))))
(ido-set-current-directory
(if (file-directory-p longname)
longname
(file-name-directory longname)))
(setq ido-exit 'refresh
ido-text-init ido-text
ido-rotate-temp t)
(exit-minibuffer)))