Thực thi tập lệnh bên ngoài khi lưu khi ở chế độ nhất định?


12

Khi tôi vào org-mode, tôi muốn Emacs thực thi một tập lệnh bash tôi đã viết bất cứ khi nào tôi nhấn C-x sđể lưu. Kịch bản tự động đồng bộ hóa tệp tôi đang lưu vào Raspberry Pi của tôi. Nó hy vọng tên tập tin là đối số.

Làm cách nào để tôi bảo Emacs chạy tập lệnh bên ngoài trên orgcác tệp khi tôi lưu?


4
Bạn có thể sử dụng after-save-hookđể chạy tập lệnh
Iqbal Ansari

Đây có phải là người nhập cư đầu tiên của chúng tôi? :-)
Malabarba

@Malabarba Đây là lần thứ hai tôi thấy :)
Kaushal Modi

Câu trả lời:


10

Đây là một thiết lập đơn giản mà bạn có thể sửa đổi cho phép bạn đồng bộ hóa orgcác tệp với Raspberry Pi, dựa trên tập lệnh bash của bạn (tất nhiên, chưa được kiểm tra, vì tôi không có Pi cũng không phải tập lệnh của bạn). Sửa đổi chức năng với tên tập lệnh của bạn. Nó sử dụng shell-command-to-stringđể đặt đầu ra dòng lệnh ở đâu đó; bạn cũng có thể sử dụng shell-commandnếu điều đó không đáng lo ngại.

Sau đó, bạn có thể thêm nó vào after-save-hook, như nhận xét của @ IqbalAnsari.

(defun sync-to-pi ()
  "Sync org file to Raspberry Pi with external script."
  (when (eq major-mode 'org-mode)
    (shell-command-to-string (format "your-script-name %s" buffer-file-name))))

(add-hook 'after-save-hook #'sync-to-pi)
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.