Executar script externo ao salvar quando em um determinado modo?

12

Quando org-modechegar, quero que o Emacs execute um script bash que escrevi sempre que clico C-x sem salvar. O script sincroniza automaticamente o arquivo que estou salvando no meu Raspberry Pi. Ele espera o nome do arquivo como argumento.

Como eu digo ao Emacs para executar o script externo nos orgarquivos quando eu salvo?

qacwnfq q
fonte
4
Você pode usar after-save-hookpara executar o script
Iqbal Ansari
Este é o nosso primeiro imigrante? :-)
Malabarba 4/14/14
@Malabarba Este é o segundo eu vi :)
Kaushal Modi

Respostas:

10

Aqui está uma configuração simples que você pode modificar que permite sincronizar orgarquivos com o Raspberry Pi, com base no script bash (não testado, é claro, porque eu não tenho um Pi nem seu script). Modifique a função com o seu nome de script. Ele usa shell-command-to-stringpara colocar a saída da linha de comando em algum lugar; você também pode usar shell-commandse isso não for uma preocupação.

Você pode adicioná-lo after-save-hook, como sugeriu o comentário 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
fonte