PMDと秀丸の連携

提供: JUDStyle
移動先: 案内検索

PMDと秀丸の連携について。WatchFileUpdate等を使用するよりどの環境でも多分速く動作するのでメモ。

前提条件

  • P.M.D.コンパイラとしてmc.exeを使用していること。
  • テキストエディタとして秀丸エディタVer.8.0以降を使用していること。
  • 演奏モニタとしてFMPMD.exe(またはコマンドライン起動から直接演奏開始できるもの)を使用していること。

秀丸マクロ

save;
runex "compmml.bat %f",0,0,"",0,"",0,"",0,"",2,1,0;

上記2行からなるマクロを作成して、秀丸のマクロディレクトリに設置する。プルダウン「その他」から「動作環境」を開き、「上級者向け設定」をONにした状態でツリーから「環境」をクリックすると、マクロディレクトリが指定できる。指定しない場合は(V8.0では)Hidemaru.exeと同一ディレクトリ。

一発起動

プルダウン「マクロ」から「マクロ登録」を開き、どこかに前述のマクロファイルを登録する。「その他」から「キー割り当て」を開き、任意のキーに対して(たとえばCtrl+Shift+S、など)対象の登録済みマクロを設定する。中央上のプルダウン「コマンド」にて「メニュー/マクロ」を選択すれば、登録済みマクロを任意のキーに割り当てられる。

バッチファイル

@echo off
echo Compiling [%1].>MCEXE.log
mc.exe %1>>MCEXE.log
if errorlevel 1 goto errorout
rem ----------------------------
"C:\Program Files\FMPMD\FMPMD.exe" %~n1.m
goto end
rem ----------------------------
:errorout
"C:\Program Files\Hidemaru\Hidemaru.exe" /b MCEXE.log
rem ----------------------------
:end

上記のようなバッチファイルを作成する。環境変数PATHが設定されているディレクトリ(変更したことがなければ\Windows\あたりが妥当)に置くのがよい。そのようなディレクトリに設置したくない場合、前述の秀丸マクロにてバッチファイル名をフルパスで指定すればよい。

ディレクトリ

  • mc.exe
    P.M.D.コンパイラ。バッチファイルの設置同様、環境変数PATHを確認のこと。
  • FMPMD.exe
    面倒なのでフルパス指定したが環境が許せばそうでなくてもいいし、もちろんFMPMD.exe以外のプレーヤーを使ってもいい。
  • MCEXE.log
    コンパイル結果が出力される。コンパイルエラーが発生した場合、Hidemaru.exeを起動して閲覧モードにてコンパイル結果(mc.exeのstdout)が表示される。秀丸は閲覧モードで起動しているので、escキーを押下すればウィンドウは閉じる。MC.exeは秀丸の作業ディレクトリ、つまり編集中MMLファイルと同一のディレクトリに出力される。

注意事項

  • 出力ファイル名は、「同名.m」固定。デフォルトの値ではなくMML「#filename」にて変更していると、当然ここに影響が出る。
  • mc.exeは、同名のアプリケーションがMicrosoftVisualStudio等に含まれているので、重複する場合はmc.exeのファイル名を変えるか、フルパスで指定すればよい。
  • Ver.8.0より古い秀丸では、動かない(マクロ「runex」がVer.8.0以前では動かないため)。多分runやrunsync等で代用はできるが、あまりパフォーマンスはよくない(というか、stdout表示などの処理が面倒)。

外部