最終更新日 2002/08/17(Sat)
[HOME] / [Emacs] / gnuserv

gnuserv - Meadow と Windows の連携

テキストファイルを Meadow に関連付けしたい人や、 他のアプリケーションと Meadow を連携させたい人は gnuserv を使ってみましょう。 (Emacs21 でも使えます)

1. はじめに

gnuserv は、他のアプリケーションと Meadow を連携させるためのツールです。 これを使うと、Meadow をテキストファイル等に関連付けするときに便利です。

Emacs は "Emacs Makes A Computer Slow." の略だというジョークがあるように、 Emacs は比較的重いアプリケーションです。 そして Emacs をベーストしている Meadow も同様です。 とは言っても、最近のコンピュータは処理能力が高いので、 Meadow で何かの操作を行なう場合にはほとんど重さを感じません。 しかし、依然として起動には時間がかかります。 テキストファイルを Meadow と関連付けしたいけれど、

という人も結構いるのではないでしょうか? また、複数の Meadow を立ち上げた場合には、 もしそれぞれの Meadow で同じファイルを編集したりすると、 整合性が取れなくなる場合も考えられます。

エクスプローラからドラッグ & ドロップすれば、 新しい Meadow を立ち上げることなく目的のファイルを開くことができますが、 やっぱり関連付けしたいですよね。 gnuserv を使用すれば、関連付けしたテキストファイルをダブルクリックしても Meadow が複数起動することはなくなります。 それにランチャなどを使っているなら、 ランチャにファイルを開くコマンドを登録して、 良く編集するファイルを一発で開いたりできると便利かもしれません。

2. gnuserv のダウンロード

gnuserv には色々なバージョンのものが存在しています (関連サイト)。 このページでは、下奥さん版の gnuserv を使用します。 ShiftJIS 対応が行なわれているため、 ファイル名やディレクトリ名に日本語が使用できるようです。
以下のページからダウンロードできます。

3. インストール

インストール手順は以下のようになります。
上記サイトのインストール方法を見れば十分だという話もありますが...

3.1 実行ファイルのコピー

アーカイブに含まれるすべての .exe ファイルをパスの通ったところにコピーします。 「パスの通ったところ」とは、 環境変数 PATH に含まれるディレクトリのいずれかです。

もちろん新たにディレクトリを作成して、 そのディレクトリを PATH に追加しても構いません。

3.2 gnuserv.el のコピー

gnuserv.el を Emacs のロードパスに追加します。 Meadow 1.14 を d:/usr/local にインストールしている場合ですと、 d:/usr/local/Meadow/1.14/site-lispにコピーしておけば大丈夫です。

3.3 環境変数の設定

環境変数は以下の 3 つを指定します。

GNUCLIENT=-F
GNUDOITW=-F
RUNEMACS=d:/usr/local/Meadow/1.14/bin/meadow.exe
         Meadow をインストールしたディレクトリに応じて書き換えて下さい

なお、Emacs の場合は環境変数 RUNEMACS に runemacs.exe を指定します。
例) d:/usr/local/emacs/21.1/bin/runemacs

これらの環境変数の設定により、それぞれ以下の効果があります。

なお、環境変数の代わりにレジストリに設定することもできます。 レジストリをいじれる程度のスキルの持っている人は、 レジストリに設定してみるのも良いかもしれません。 詳細はアーカイブに含まれる gnuserv.html に記載されています。

3.4 .emacs の編集

最後は .emacs の編集です。以下の行を追加して下さい。

(require 'gnuserv)
(gnuserv-start)
(setq gnuserv-frame (selected-frame))

連携したときに別のフレームが出現した方が良いという場合は、 最後の行は必要ありません。 コメントアウトして下さい。

4. それぞれのコマンドの意味

gnuserv.exe
Meadow が使用するコマンドです。ユーザが直接使用することはありません。 以下のコマンドによる要求を Meadow に伝える裏方さんです。
gnuclient.exe
Meadow が引数に指定したファイルを開きます。 コマンドを実行すると、Meadow がファイル開いたあとも終了しません。 C-x k (M-x kill-buffer) もしくは、 C-x # (M-x server-exit) により、 ファイルを閉じると gnuclient は終了します。
gnuclientw.exe
Meadow が引数に指定したファイルを開きます。 gnuclient と異なり、Meadow がファイルが開いたら終了します。
gnudoit.exe
Meadow が引数に指定した Meadow のコマンドを実行します。 コマンドを実行すると、Meadow が処理を完了するまで終了しません。
gnudoitw.exe
Meadow が引数に指定した Meadow のコマンドを実行します。 gnudoit と異なり、Meadow がコマンドを開始すると終了します。

5. 適用例

5.1 コマンドラインからファイルを開く

以下のようにコマンドプロンプト等から入力します。

gnuclient sample.txt

5.2 「送る」メニューに登録する

SendTo フォルダに gnuclientw のショートカットを作成するだけです。 ショートカット名を Meadow に変更し、 アイコンも meadow.exe のアイコンに変更してしまいましょう。

なお、SendTo のディレクトリは Windows のバージョンによって結構変更されるので、 場所は示せません。御了承下さい。 C ドライブの検索メニューから SendTo を検索すれば見付かると思います。

関連付けについても、 同様に対応するアプリケーションに gnuclientw を指定すれば可能です。 ファイル名指定のところが "%1" のようにダブルクォーテーションで囲まれていることを確認して下さい。

5.3 メールの連携

メール監視ソフト WPBF から、Mew を呼び出す設定は以下のとおりです。

まず、以下の設定を WPBFAPI.INI に追加します。
※ 以下の「タイトルバー」実際には半角カナですので注意。

[gnuclientw]
タイトルバーの文字列=gnuclientw

WPBF のプロパティを設定します。 「プロパティ」-「メーラ連携」を選択し、以下のプロパティを設定します。

なお、Mew でなくても、他の Emacs 上の MUA でも同様に設定できます。

[HOME] / [Emacs] / gnuserv