Exécuter un script externe lors de la sauvegarde dans un certain mode?

12

Quand je suis dedans org-mode, je veux qu'Emacs exécute un script bash que j'ai écrit chaque fois que je tape C-x spour sauvegarder. Le script synchronise automatiquement le fichier que j'enregistre sur mon Raspberry Pi. Il attend le nom de fichier comme argument.

Comment dire à Emacs d'exécuter le script externe sur des orgfichiers lorsque j'enregistre?

qacwnfq q
la source
4
Vous pouvez utiliser after-save-hookpour exécuter le script
Iqbal Ansari
Est-ce notre premier immigrant? :-)
Malabarba
@Malabarba C'est le deuxième que j'ai vu :)
Kaushal Modi

Réponses:

10

Voici une configuration simple que vous pouvez modifier qui vous permet de synchroniser des orgfichiers avec votre Raspberry Pi, en fonction de votre script bash (non testé, bien sûr, car je n'ai ni Pi ni votre script). Modifiez la fonction avec le nom de votre script. Il utilise shell-command-to-stringpour placer la sortie de la ligne de commande quelque part; vous pouvez également utiliser shell-commandsi ce n'est pas un problème.

Vous pouvez ensuite l'ajouter à after-save-hook, comme l'a suggéré le commentaire de @ 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
la source