Tự động làm rối các tập tin org trong một thư mục cụ thể


9

Tôi đang chuyển đổi các dotfiles của mình thành các tệp org-babel vì tôi thực sự thích viết lại cấu hình Emacs của mình trong đó và tôi có một chức năng để init.orgtự động làm rối nó bất cứ khi nào tôi lưu. Tuy nhiên, tôi đã không thành công trong việc làm cho các .orgtệp nói ~/.dotfilestự động làm tương tự. Tôi có chức năng này hiện tại:

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

Tuy nhiên, điều này chỉ hoạt động đối với tệp tôi đặt tên, không phải cho bất kỳ tệp org nào. Việc sử dụng *.orgcũng không hoạt động, tôi cũng không tìm ra cách trích xuất tên thư mục từ cả bộ đệm và thư mục và thực hiện theo cách đó.

Tôi cũng đã hỏi về #emacs trên Freenode nhưng không ai trả lời tôi ở đó. Bất kỳ trợ giúp hoặc con trỏ về nơi bắt đầu sẽ được đánh giá cao.

Câu trả lời:


9

Tôi đã tìm ra cách để làm điều đó:

(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)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.