Виконати зовнішній скрипт при збереженні в певному режимі?


12

Коли я входжу org-mode, я хочу, щоб Emacs виконав сценарій bash, який я писав, коли натискав, C-x sщоб зберегти. Сценарій автоматично синхронізує файл, який я зберігаю, до мого Raspberry Pi. Він очікує, що ім'я файлу як аргумент.

Як сказати Emacs запускати зовнішній скрипт у orgфайлах, коли я зберігаю?


4
Ви можете використовувати after-save-hookдля запуску сценарію
Iqbal Ansari

Це наш перший іммігрант? :-)
Малабарба

@Malabarba Це другий, який я бачив :)
Каушал Моді

Відповіді:


11

Ось проста настройка, яку ви можете змінити, що дозволяє синхронізувати orgфайли з вашим Raspberry Pi, грунтуючись на вашому bash-скрипті (звичайно, не перевірений, тому що у мене немає ні Pi, ні вашого сценарію). Змініть функцію за допомогою імені сценарію. Він використовує shell-command-to-stringдля того, щоб десь вивести командний рядок; Ви також можете просто використовувати, shell-commandякщо це не викликає занепокоєння.

Потім ви можете додати його до after-save-hookкоментаря @ 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)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.