gnuserv を使って Meadow で様々なファイルを開く

書くときに使うのは Meadow だけど、ReadMe とかのちょっとしたファイルを読むときはサクラエディタを使っていた僕。
なぜそうしていたかといえば、Meadow がいくつも立ち上がるのが嫌だったから。
でも1つの Meadow でファイルを開ける方法が分かったので、これからは完全に Meadow だけを使うようにしたいと思う。
選択肢としては、emacsclient と gnuserv の2つがあり、実際にどちらも試してみた。
導入の手間は emacsclient の方が少ないけど、使い心地は gnuserv の方がいい。
以下は gnuserv の導入手順。

  • gnuserv-latest.zipをダウンロードして解凍する
  • 以下の exe ファイルをパスの通ったところに移動する
    • gnuclient.exe
    • gnuclientw.exe
    • gnuserv.exe
    • gnudoit.exe
    • gnudoitw.exe
  • gnuserv.el を lisp パスの通ったところに移動する
  • .emacs に以下を追加する
;;; gnuserv の設定
(require 'gnuserv)
(gnuserv-start)
;; 新しいフレームを開かない
(setq gnuserv-frame (selected-frame))
  • 以下の環境変数を設定する(RunMW32.exe にパスが通っている必要あり)
GNUCLIENTW=-F
GNUDOITW=-F
EMACS=MEADOW
RUNEMACS=RunMW32.exe
    • 環境変数の設定は Win + PAUSEBREAK を使うと早い
    • -F は呼び出し時に Meadow をフォアグラウンドにするオプション
    • RUNEMACS は Meadow が起動されてない場合に、自動的に Meadow を起動するための設定。Meadow.exe だと DOS プロンプトも一緒に出てきてしまうので RunMW32.exe にする
  • あとはファイルの関連付けで gnuclientw.exe を選べばOK

Firefox との連携

ページのソースを表示
  • ロケーションバーから about:config を開く
  • view_source.editor.external を true にする
  • view_source.editor.path に gnuclientw.exe のパスを設定する
user.js の編集
  • ロケーションバーから about:config を開く
  • greasemonkey.editor に gnuclientw.exe のパスを設定する

Elscreen-server を使うとさらに便利に

Elscreen を使っている人は、http://www.morishima.net/~naoto/software/elscreen/index.php.ja から Elscreen-server をダウンロードしてきて、Elscreen の設定に以下を追加してやるとさらに便利になります。

(require 'elscreen-server)

これで gnuclientw を呼び出したときに、自動的に新しいタブが作られるようになる。

気がかりな点

-F オプションをつけているのに Meadow がフォアグラウンドになりません(つД`)ナンデダー
新しいフレームで開くようにしてるとフォアグラウンドになった。
あと Elscreen-server を使っていると、新しいフレームで開く設定にしてないくとも、新しく開いてくれるみたいだ。
Elscreen のタブ機能を使いつつ Meadow をフォアグラウンドにできないものか。。うーん。

追記

Meadow/bin に入っていた emacsclientw が僕の希望通りのものだった。
emacsclient と違うのは、DOSプロンプトが立ち上がらないところ。
あと gnuserv と違って、オプションとか気にしなくても勝手にフォアグラウンドになってくれる。
そして Firefox の about:config で emacsclientw.exe のパスを設定するだけというお手軽さ。
最初からこれを試していれば早かっただろうなぁ。