Jalankan skrip eksternal saat menyimpan ketika dalam mode tertentu?

12

Ketika saya masuk org-mode, saya ingin Emacs menjalankan skrip bash yang saya tulis setiap kali saya menekan C-x suntuk menyimpan. Script secara otomatis menyinkronkan file yang saya simpan ke Raspberry Pi saya. Itu mengharapkan nama file sebagai argumen.

Bagaimana cara saya memberi tahu Emacs untuk menjalankan skrip eksternal pada orgfile ketika saya menyimpan?

qacwnfq q
sumber
4
Anda dapat menggunakan after-save-hookuntuk menjalankan skrip
Iqbal Ansari
Apakah ini imigran pertama kita? :-)
Malabarba
@Malabarba Ini adalah yang kedua yang saya lihat :)
Kaushal Modi

Jawaban:

10

Berikut ini adalah pengaturan sederhana yang dapat Anda modifikasi yang memungkinkan Anda untuk menyinkronkan orgfile ke Raspberry Pi Anda, berdasarkan skrip bash Anda (tidak teruji, tentu saja, karena saya tidak memiliki Pi atau skrip Anda). Ubah fungsi dengan nama skrip Anda. Ini digunakan shell-command-to-stringuntuk menempatkan output baris perintah di suatu tempat; Anda juga bisa menggunakan shell-commandjika itu bukan masalah.

Anda kemudian dapat menambahkannya after-save-hook, seperti yang disarankan oleh komentar 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)
Dan
sumber