Paper Plane xUI再挑戦その4−メニューを作成
前置き
PPxカスタマイズの続きです。
メニューの作成をします。
メニューの作り方
M_hogehoge
という形でメニューファイルを作り、その中に記述。最初にM_というのがつくとメニューファイルになります。hogehogeのところに、好きなメニュー名を入れます。ヘルプによると、
メニューの編集はここで行います。予め登録されているものの他、M_xxxxの形式で新たに登録することができます。登録されているメニューは %M マクロ文字で利用できます。
とのこと。
PPX.CFGを編集する場合
PPX.CFGに直接記述するとしたら、
M_makefile = { PlainFile = *makefile %1\%E TextFile(&txt) = *makefile %1\%E.txt C++ Script(&cpp) = *makefile %1\%E.cpp C++ Script Header(&h) = *makefile %1\%E.h Python Script(&py) = *makefile %1\%E.py AutoHotKey Script(&ahk) = *makefile %1\%E.ahk &VBScript = *makefile %1\%E.vbs -- = ディレクトリ(&D) = *makedir %1\%E }
こんなの。書式は
項目 = 実行内容
ですね。PPX.CFGにどうやって取り込むかとかは、以前書いたここの「PPX.CFGをいじる場合」を参考にしてください。
カスタマイザーを使う場合
GUIで作る場合は、メニュータブを開き一々登録していきます。もとからあるメニューに追加、という時にはこっちでもいいかもしれない。
たとえば、上で作ったM_makefileに、新たにJScriptという項目で*makefile %1\%E.jsという内容を登録したいと思ったら、次のようにする。
種類のところに、登録したいメニュー名を書いて、そこに新たに載せたい項目と、登録内容を記述する、という形です。項目が表示するもので、登録内容が実行する内容。
そして、設定を押し、適用。すると、メニューが追加されます。
新しいメニューをGUIで作りたいときには、種類に新しいものを書いて、登録するだけ。
メニューの使い方
使うときには、キーカスタマイズで登録するか、別のメニューに登録するとかします。
登録するときには、
%M_hogehoge
とする。たとえば、さっき作ったメニューをF10に登録したいときはこうなる。種類でKC/Mainを選択し、
で、設定、適用と。
ちなみに、メニューそのものを変数として扱い、他のと組み合わせることができます。
たとえば、履歴に飛ぶメニューというのは、
M_HistoryJump = { A = %j %h0 B = %j %h1 C = %j %h2 D = %j %h3 E = %j %h4 F = %j %h5 G = %j %h6 H = %j %h7 I = %j %h8 J = %j %h9 }
として、適当なキーに%M_HistoryJumpという仕方で登録することになるけれど次のようにもできる。
まず、メニューのほうは次のように。
M_History = { %h0 = %h0 %h1 = %h1 %h2 = %h2 %h3 = %h3 %h4 = %h4 %h5 = %h5 %h6 = %h6 %h7 = %h7 %h8 = %h8 %h9 = %h9 }
そして、適当なキーに%j%M_History、と登録すると%M_HistoryJumpと同じことができる。
%jというのは、後ろのパスへディレクトリ移動ができるマクロ。こっちだと、キー登録の時に%jの部分を色々変えることで、融通が利くわけですね。
階層構造
メニューにメニューを登録したら階層構造にできます。
%M_Menu
という、メニューを集めたメニューを作るとしましょう。
ここに、次のように記述。
M_Menu = { 履歴ジャンプ = %j%M_History 空ファイル作成メニュー = %M_makefile }
としたら階層構造に。画像のようになります。
メニューの使い方
メニューの使い方なんだけど、どうせ作っても忘れるから、一つのメニューにすべてまとめるというのがいい。
そして、よく使うのは独自に割り当てる、というようにするといいかと。僕の場合は、Shift+M(MenuのMのつもり)に上のM_Menuを登録し、そこからすべてのメニューにいけるようにしている。そして、よく使う履歴ジャンプだけは、Hに登録しています。
ということで、使っているメニューをのっけていきます。
使っているメニュー
ジャンプ
さっきのM_Historyに、よく使うフォルダを追加するというようにしています。
M_History = { %h0 = %h0 %h1 = %h1 %h2 = %h2 %h3 = %h3 %h4 = %h4 %h5 = %h5 %h6 = %h6 %h7 = %h7 %h8 = %h8 %h9 = %h9 || = Bin = D:\bin T&Dir = D:\Temp\TDir T&File = D:\Temp\TFiles Work = D:\work Ex-Howm = D:\data\ex-howm Homw = D:\bin\xyzzy\howm }
"|| = "というのは、縦のセパレートを意味しています。
マスク
M_Mask = { ディレクトリマスク = *maskentry attribute:d EXEでマスク = *maskentry *.exe TXTでマスク = *maskentry *.txt カーソル行の拡張子でファイルマスク = *maskentry *.%T }
パスのコピー
M_ClipPath = { CopyFileName = *cliptext %R Copy&DirName = *cliptext %1 Copy&FileName(拡張子無し) = *cliptext %Y CopyFilePath = *cliptext %FCD }
*cliptextで、クリップボードにコピーです。
僕はCtrl+Nに登録している。
空ファイル作成メニュー
M_makefile = { PlainFile = *makefile %1\%E TextFile(&txt) = *makefile %1\%E.txt C++ Script(&cpp) = *makefile %1\%E.cpp C++ Script Header(&h) = *makefile %1\%E.h Python Script(&py) = *makefile %1\%E.py AutoHotKey Script(&ahk) = *makefile %1\%E.ahk &VBScript = *makefile %1\%E.vbs &JScript = *makefile %1\%E.js -- = ディレクトリ(&D) = *makedir %1\%E }
外部ソフト起動
よく使うソフトは、大抵メニュー化せずにそのままキーに登録するし、パスを投げないのならfenrirを使ったほうが早い。だから外部ソフトをメニュー化するのは、あまり意味がない気もします。
まあ、登録している外部ソフトとして、どういうのを使っているかの参考ということで。
M_exec = { あふ = %Ob D:\bin\afxw\AFXWCMD.EXE -p%1 VxGrep = %Ob D:\bin1\VxEditorForGrep\VxGrep.exe %1 ポチエス = %Ob D:\bin\esExt5_c\esExt5_c.exe %FCD ttPage-R = %Ob D:\bin\ttPage-R\ttPage.exe %FCD MassiGra = %Ob D:\bin\MassiGra\MassiGra.exe %FCD }
ファイル移動
*ppcfile move,%M_History
同上。