理系学生日記

おまえはいつまで学生気分なのか

Chrome上のテキスト編集でEmacsを使用したい

というわけで Chrome に移行したんですが、テキストフィールドに文章を入力するのに Emacs が使えないのは能率を著しく落とすので何とかならんものかと探していたら、そのものズバリの拡張として Edit with Emacs なる拡張を発見した。 どうも Chrome からは外部プロセスの起動が許されていないようなので、Emacs 側でサーバを立ち上げ、Chrome・Emacs 間でプロセス間通信を行うというシビれる実装らしい。Emacs 側でも設定が必要になる。

Emacs 側での設定

edit-server のインストール

まずは edit-server.el をインストールする必要がある。 Cask をお使いの方は Cask ファイルに

(depends-on "edit-server")

を記述した後で

$ cask install

で elisp をインストールしよう。

edit-server の設定

edit-server は単純に立ち上げれば良いのだけれど、それだけだとテキストエリアを編集する度に Emacs の「フレーム」が立ち上がってダルい。あと、デフォルトでは text-mode になっているのだけれど、別のモードで立ち上げたいというときもある。 というわけで、次の要望を満たしたい。

  1. テキストエリアを編集するときにはバッファを立ち上げる
  2. 特定のホスト上では markdown-mode で立ち上げたい

これを満たすためには、以下の elisp を記述しておけば良いです。ここでは、はてなブログの場合は markdown-mode を指定していますが、設定は alist で持てるので、好きなように指定すれば良いと思う。

;; edit server 起動
(when (require 'edit-server nil t)
  (setq edit-server-new-frame nil)
  (setq edit-server-url-major-mode-alist
        '(("kiririmode\\.hatenablog\\.jp" . markdown-mode)))
  (edit-server-start))

Chrome 側の設定

ほとんど何も要らない。Edit with Emacs 拡張をインストールして、拡張のページの「Test」リンクから「Test」ボタンを押して edit-server is running のメッセージが出れば OK。

これで多少は効率が上がるはず…。