特定のディレクトリ内のorgファイルを自動的に連結する

私はドットファイルをorg-babelファイルに変換しています。Emacsの設定を書き直すのが楽しいからです。また、保存するたびに自動的にtanglesする init.org の機能があります。しかし、私は、〜/ .dotfiles.org ファイルを自動的に同じようにするのに成功していません。私は現在この機能を持っています:

(defun my/tangle-dotfiles ()
  "If the current file is in '~/.dotfiles', the code blocks are tangled"
  (when (equal (buffer-file-name)
               (expand-file-name "~/.dotfiles/tmux.org"))
    (org-babel-tangle)
    (message "Dotfile tangled")))

(add-hook 'after-save-hook #'my/tangle-dotfiles)

ただし、これは特定のファイルに対してのみ機能し、orgファイルでは機能しません。 *。org を使用しても動作しませんし、バッファとディレクトリの両方からディレクトリ名を抽出してそのようにする方法もわかっていません。

私もFreenodeの#emacsについて尋ねたが、誰も私に答えなかった。どこから始めるべきかについての助けや指針は高く評価されます。

5

1 答え

私はそれを行う方法を考え出した:

(defun my/tangle-dotfiles ()
  "If the current file is in '~/.dotfiles', the code blocks are tangled"
  (when (equal (file-name-directory (directory-file-name buffer-file-name))
               (concat (getenv "HOME") "/.dotfiles/"))
    (org-babel-tangle)
    (message "%s tangled" buffer-file-name)))

(add-hook 'after-save-hook #'my/tangle-dotfiles)
5
追加された