Verwickeln Sie Organisationsdateien automatisch in ein bestimmtes Verzeichnis

9

Ich konvertiere meine Punktedateien in org-babel-Dateien, weil ich es wirklich genossen habe, meine Emacs-Konfiguration darin neu zu schreiben, und ich habe eine Funktion für die init.org, die sie beim Speichern automatisch verwickelt. Es ist mir jedoch nicht gelungen, die .orgDateien dazu ~/.dotfileszu bringen, dasselbe automatisch zu tun. Ich habe diese Funktion derzeit:

(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)

Dies funktioniert jedoch nur für die bestimmte Datei, die ich benenne, nicht für eine Organisationsdatei. Die Verwendung *.orgfunktioniert auch nicht, und ich habe auch nicht herausgefunden, wie der Verzeichnisname sowohl aus dem Puffer als auch aus dem Verzeichnis extrahiert und auf diese Weise ausgeführt werden kann.

Ich habe auch nach den #emacs auf Freenode gefragt, aber dort hat mir niemand geantwortet. Jede Hilfe oder jeder Hinweis, wo Sie anfangen sollen, wäre sehr dankbar.

Sondre Nilsen
quelle

Antworten:

9

Ich habe herausgefunden, wie es geht:

(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)
Sondre Nilsen
quelle