秀丸でxmpfilterを使う

方法をちょっと探ってみました。

rcodetools

まずrcodetoolsのインストールは、

gem install rcodetools

で一発だった。


秀丸パイプの導入

でもって、秀丸の変換モジュール"秀丸パイプ"を導入する。

秀まるおのホームページ: http://hide.maruo.co.jp/

の、ライブラリ -> 変換モジュールライブラリ から、"秀丸パイプ"をダウンロードして、適当な場所に展開する。
普通は、*.hmfというファイル(実態はDLL)をHidemaru.exeと同じディレクトリに配置するようです。
秀丸パイプの場合、HmPipe.hmfの他にHmPipe.iniという設定ファイルもあります。これらは同じディレクトリに配置しなければならないそうです。

そして、「動作環境」の「上級者向け設定」チェックを効かせて、
「編集」->「変換」から、「変換モジュール」にHmPipe.hmfを追加して
その下の「使用する変換」の「秀丸パイプ」をONにしておきます。

プルダウンメニューの「編集」->「変換」に、「秀丸パイプ」という項目が現れているはずです。
範囲選択した状態でこれを選ぶと、秀丸パイプのメニューが現れて、適用させるフィルタを選択できます。


秀丸パイプの設定

HmPipe.iniを編集します。このファイルの書式はhmpipe_readme.txtに書かれています。
とりあえずxmpfilterを使うだけならこんな感じ。

xmpfilter		ruby	C:/ruby/ruby1.8/bin/xmpfilter
xmpfilter-mark		ruby	C:/ruby/ruby1.8/bin/xmpfilter -m
xmpfilter-test/unit	ruby	C:/ruby/ruby1.8/bin/xmpfilter -u

この際、"xmpfilter"と"ruby"、"ruby"と"C:/ruby/ruby1.8/bin/xmpfilter"の間は
タブ文字で区切られている必要があります。
エディタでソフトタブを使っている人は注意してください。半角スペースだとダメです。


キーバインド

変換モジュールの使用はキーバインドできないそうです。マクロを書く必要があります。

#pre_selecting = selecting;
if (selecting == 0) selectall;
filter "HmPipe.hmf" , "HmPipe";
if (selecting == 1 && #pre_selecting == 0) escape;
endmacro;

こんな感じでいいのか?

でもって、「その他」->「キー割り当て」からそのマクロを適当なキーに割り当てると。

マクロから変換モジュールをDLLとしてロードすれば、いちいち秀丸パイプメニューを出さずとも、直接xmpfilterとかxmpfilter-markとかを実行できるっぽいですけど、秀丸は2ストロークキーが使えずそんなに(使い易い)キーに空きが無いので、自分的にはこれで満足です。