AUX:パスについて
対応バージョン: PPx150以降プラグイン:
説明
PPx1.50以降のバージョンにはaux:パスという機能が用意されています。 この機能は大仰な言い方をすればPPcを外部コマンドの擬似的なフロントエンドにする機能で、 FTP、Androidデバイス、オンラインストレージ、バージョン管理システムなどで管理中 のファイルをPPcのエントリとして通常のディレクトリと大差なく操作感できます。
おもしろい機能ですが難解でもありヘルプの説明だけでは分からない点が多かった為、 TORO氏にHP掲示板で質問した内容や、自分で確認した範囲の解説をしていきます。
aux:パスは未だ更新中の機能です。情報が陳腐化していたり、筆者の勘違い、 間違いがある可能性に留意してください。
aux:パス機能の詳細
- aux:パスは仮想パスであり、実体は基本的にリストファイル。
- aux:パスの本体は PPx 内部の S_aux○○○ に保存されている。
- S_aux○○○ と S_○○○ では扱いが異なり、S_aux○○○ は aux:ドライブとして認識される。
- S_○○○ は M_○○○(メニュー設定)と似たようなものだがメニューとしては利用できない。
- aux:パスには二通りの表記方法がある。
PPc 上のパス | パス区切り | 説明 |
---|---|---|
aux:S_aux○○○\ | \ | ローカル(自分の PC 内)を示す。 |
aux://S_aux○○○/ | / | リモート(ネットワーク上)を示す。 |
- S_aux○○○ は設定できる項目と内容が決まっている。
規定項目 | 補足 ※詳細はヘルプを参照 |
---|---|
base | 一行編集の補完候補として表示されるが、aux:パス名を決定するのはメニュー登録名 S_aux○○○ であり、ここで記されるパスが aux:パスになるわけではない。 |
list | ここで指定した listfile が aux:パスとして開かれる。ローカルパスも指定可能。 パスはコマンドの最後に必ず書く必要があり、パスがない場合エラーエントリが表示される。 また、リストの変更時に自動で実行される場合がある。 ※%On としても呼び出される PPb に反映されない。独自に呼び出しが行われている模様。 |
leave | aux:パスを抜けた後に実行。 ※%F の参照などは通常のパスになる。 |
overup | 特殊環境変数 RootPath より上位に移動したときに実行、その後 list が実行される。 ※leave と同じく、aux:パスを抜けた後実行される。 |
get get-d |
aux:から別のドライブにエントリをコピーしたときに実行。%K"@C" の実行内容と置き換えられる。 |
get-m get-md |
aux:から別のドライブにエントリを移動したときに実行。%K@M" の実行内容と置き換えられ、終了後list が実行される。 |
store store-d |
別のドライブから aux:にエントリをコピーしたときに実行。%K"@C" の実行内容と置き換えられ、終了後list が実行される。 |
store-m store-dm |
別のドライブから aux:にエントリを移動したときに実行。%K"@M" の実行内容と置き換えられ、終了後list が実行される。 |
makedir | 新規ディレクトリ作成時。%K"@K" の実行内容と置き換えられ、終了後list が実行される。 |
rename | リネーム実行時。%K"@R" の実行内容と置き換えられる。※シェルコマンド側でリネームに対応している必要あり。 |
copy copy-d |
aux:内の別の場所にエントリをコピーしたときに実行。%K"@C" の実行内容と置き換えられ、終了後list が実行される。 |
move move-d |
aux:内の別の場所にエントリを移動したときに実行。%K"@M" の実行内容と置き換えられ、終了後list が実行される。 |
del deldir |
削除実行時。%K"@\D の実行内容と置き換えられ、終了後list が実行される。 |
- S_aux○○○で規定項目以外を設定すると、S_aux○○○内でのみ使える”%*関数”になる。
S_aux○○○:msg = *linemessage "abcd" %:
は%*msg
としてS_aux○○○内部でのみ呼び出せる。
また、規定項目以外で*コマンド
を使用する場合は行末に%:
を付ける必要がある。%*~ は、aux: 内に限られず一番最後の文を呼び出し元に受け渡す処理をしているので、
最後に実行関係の文を記載すると実行されないケースがあります。
とのこと。 - S_aux○○○内で*stringコマンドを使う時は注意が必要。
*string i,aux=1と*execute %n,*string i,aux=1は別の変数であり参照元が異なる。
前者はS_aux○○○内部では
%si'aux'
、外部では%sp'aux'
として登録される。
aux:パス専用特殊環境変数
- NewPath は次の移動先パスを保持している。
*string i,NewPath=【移動したいパス】
として移動先を変更できる。
- RootPath は aux:パスのルートを設定できる。
*execute %n,*string i,RootPath=【Rootに指定するパス】
とする。- %si”RootPath”は aux:パスが表示されている限り、PPc を終了しても維持される。
- S_aux○○○ に記号(#など)を含めると RootPath が正しく判別されない場合がある。
aux:パス専用内蔵関数
- パスワードセット時の%*user、%*pass は
list
コマンド内で使用すること。
別の%*関数経由でのセットではキャンセルしたときに正常終了しない場合あり。
aux:パス専用メニュー
- たとえばaux:S_auxTest\内を対象とするメニューを出したいならば、
M_auxTest.○○○(以降 S_auxTest.abc とする)という項目を作り、
?auxabc
を実行すれば表示される。 - M_auxTest1.abc、M_auxTest2.abc、いずれも
?auxabc
で表示されるので aux:パスごとの個別メニューに対応できる。
aux:パス上の文字マクロ
- 状況によって戻り値が異なるので注意が必要。
- 例として、PPcで aux:S_auxTest\c:\bin\ppx\を開き、ppcw.exeにカーソルを合わせたとする。
- aux:パスが listfile だった場合
%FDC
はc:\bin\ppx\ppcw.exe
を返す。
これは listfile を直接開いた二行目に書いてあるbase=○○○
を基準としたパス。 - aux:パスが listfile ではない(普通のパス)場合
%FDC
はaux:S_auxTest\c:\bin\ppx\ppcw.exe
を返す。
リストファイルではなく base パスが存在しないため表示上のパスになる。
- aux:パスが listfile だった場合