アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

Edit with EmacsとStumpWMの連携が便利!

こんにちは、chibaです!
Emacs大好きな自分は、Firefoxのテキストエリアの編集には、It’s All Text!を利用しているのですが、最近Chromeを使うことも多く、It’s All Text!みたいなのが、Chromeにもないかなあとちょっと探してみたらEdit with Emacsというのをみつけました。
It’s All Text!と違ってこちらは Edit with Emacs という名前の通りEmacs専用という感じです。
Emacs側で、サーバーを立てて接続を待ち受けるという方式なので、専用のelispを読み込ませておく必要があります。
いつものパターンなのですが、ChromeからEmacsを呼び出したときは、フォーカスをEmacsに遷移、そして編集が終わればまたChromeにフォーカスを自動で戻したいところ。
StumpWMならば、シェルからコマンドを実行できる仕組みがあるので、これでフォーカスの遷移に対応してみました。

(progn
  (require 'edit-server)

  (setq edit-server-new-frame nil)

  (unless edit-server-new-frame
    (add-hook 'edit-server-done-hook
              (lambda ()
                (start-process "->chrome" nil "stumpish" "chrome"))))

  (add-hook 'edit-server-start-hook
            (lambda ()
              (start-process "->emacs" nil "stumpish" "emacs")))

  (edit-server-start) )

Edit with Emacsと連携させる、edit-server.elですが、フックを掛けられるように作り込まれていて、楽に拡張ができます。この辺りに地味に感心しました。 ■