Belirli bir moddayken kaydettikten sonra harici komut dosyası çalıştırılsın mı?


12

İçeri girdiğimde org-mode, Emacs'ın C-x skaydetmek için vurduğumda yazdığım bir bash komut dosyasını yürütmesini istiyorum . Betik, kaydettiğim dosyayı Raspberry Pi'ye otomatik olarak senkronize eder. Dosya adını argüman olarak bekler.

orgKaydettiğimde Emacs'a dosyalar üzerinde harici komut dosyasını çalıştırmasını nasıl söyleyebilirim ?


4
after-save-hookSenaryoyu çalıştırmak için kullanabilirsiniz
Iqbal Ansari

Bu bizim ilk göçmenimiz mi? :-)
Malabarba

@Malabarba Bu gördüğüm ikinci :)
Kaushal Modi

Yanıtlar:


11

İşte orgbash betiğinize (tabii ki test edilmemiş, çünkü bir Pi veya betiğiniz olmadığından) dosyaları Raspberry Pi'nize senkronize etmenizi sağlayan basit bir kurulum . İşlevi komut dosyası adınızla değiştirin. Bu kullanır shell-command-to-stringyerde komut satırı çıktısını koymak; sadece shell-commandbu bir endişe değilse kullanabilirsiniz .

Daha sonra after-save-hook@ IqbalAnsari'nin yorumunun önerdiği gibi ekleyebilirsiniz .

(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)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.