Emacsで保存時にFirefoxのタブを探してリロード

  • 8
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Emacs+Firefox+MozReplでファイルセーブと同時にリロードの改良です。

EmacsでHTMLやCSSファイルなどを編集、保存した際に、Firefoxのドメイン名がlocalhostなタブを探し、切り替えてリロードしてくれます。

以下、適用方法です。

  • FirefoxにMozReplをインストールします。

    • メニューバー→ツール→MozRepl→Activate on startupをチェックしてFirefoxの起動と同時にMozReplを有効にするか、
    • メニューバー→ツール→MozRepl→StartでMozReplを有効にします。
  • moz.el~/.emacs.d/あたりに保存します。

  • 以下のコードをinit.elに貼り付けます。

(require 'moz)

(defun auto-reload-firefox-on-after-save-hook ()
  (add-hook 'after-save-hook
            '(lambda ()
               (interactive)
               (comint-send-string (inferior-moz-process) "
function reload(){
  var i;
  for(i=0;i<gBrowser.browsers.length;++i){
    var host=gBrowser.getBrowserAtIndex(i).currentURI.host;
    if(host=='localhost')break;
  }
  if(i>=gBrowser.browsers.length)return;
  gBrowser.selectedTab=gBrowser.tabContainer.childNodes[i];
  BrowserReload();
}
reload();
"))))

(add-hook 'php-mode-hook 'auto-reload-firefox-on-after-save-hook)
(add-hook 'html-mode-hook 'auto-reload-firefox-on-after-save-hook)
(add-hook 'css-mode-hook 'auto-reload-firefox-on-after-save-hook)

php-modehtml-modecss-modeのときに保存するとオートリロードしてくれますので適宜書き換えてください。