Aggroviglia automaticamente i file organizzativi in ​​una directory specifica


9

Sto convertendo i miei dotfile in file org-babel perché mi sono davvero divertito a riscrivere la mia configurazione di Emacs in esso e ho una funzione init.orgche lo aggroviglia automaticamente ogni volta che lo salvo. Tuttavia, non sono riuscito a far sì che i .orgfile dicano ~/.dotfilesdi fare lo stesso automaticamente. Ho questa funzione attualmente:

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

Tuttavia, questo funziona solo per il file specifico che ho nominato, non per qualsiasi file org. L'uso *.orgnon funziona neanche, né ho capito come estrarre il nome della directory dal buffer e dalla directory e farlo in quel modo.

Ho anche chiesto su #emacs su Freenode ma nessuno mi ha risposto lì. Qualsiasi aiuto o puntatore su dove iniziare sarebbe molto apprezzato.

Risposte:


9

Ho capito come farlo:

(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)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.