PPxでブックマーク

ブックマークを使いたい

PPxでのフォルダ移動は、普通に階層移動かfenrirでの移動が基本ですよね。たまには、履歴移動とかもしたり。あとは、ブックマークができればいいかなあと。
ブックマークができると、あるフォルダにいるけど別のフォルダに行きたい、そしてすぐ戻りたい、というときに便利。今いるパスをブックマークして、別の場所にいったあとに、すぐにブックマークを開いてさっき登録したところに戻る、と。今までだったらもう一枚窓を開いて、というようにしてたけどできるだけ一画面ですませたいんですね。

おおきなみちすじ

エイリアスという機能がPPxにはある。これを、一時的にパスを保存するのに使います。

  1. 現在いるパスを登録する
  2. 今まで登録したパスをメニューで表示し、そこに移動

という流れです。

とりあえず使いたい人への説明

まず、Paper Plane xUI Script Moduleをここからダウンロードしてきて、その中にあるPPXSCR.dllをPPxがインストールされているフォルダに入れましょう。これで、*scriptというコマンドが使えるようになります。
次に、PPxがインストールされてるフォルダに、Scriptフォルダを作りましょう。
このScriptフォルダに、下の二つのファイルを入れます。setpath.jsはパスを登録するためのスクリプトで、resetpath.jsは登録したパスをリセットするためのスクリプトです。

setpath.js
//!*script

PPx.Execute("*alias bookmark5 = %'bookmark4'")
PPx.Execute("*alias bookmark4 = %'bookmark3'")
PPx.Execute("*alias bookmark3 = %'bookmark2'")
PPx.Execute("*alias bookmark2 = %'bookmark1'")
PPx.Execute("*alias bookmark1 = %1")
resetpath.js
//!*script

PPx.Execute("*alias bookmark5 = ")
PPx.Execute("*alias bookmark4 = ")
PPx.Execute("*alias bookmark3 = ")
PPx.Execute("*alias bookmark2 = ")
PPx.Execute("*alias bookmark1 = ")

次に、メニューです。下のメニューを登録しましょう。カスタマイザでやるよりも、PPX.CFGを編集して取り込む方が楽でしょう。ここの「PPX.CFGをいじる場合」を参考に。

M_Bookmark

M_Bookmark	= {
1:%'bookmark1'	= %j %'bookmark1'
2:%'bookmark2'	= %j %'bookmark2'
3:%'bookmark3'	= %j %'bookmark3'
4:%'bookmark4'	= %j %'bookmark4'
5:%'bookmark5'	= %j %'bookmark5'
RESET	= *script %0\Script\resetpath.js
}

次いで、キー割当てです。まずはブックマーク表示メニューから。

キー指定でF9を。登録内容詳細に

 %M_Bookmark

をコピペして、設定、適用。
ついで、パスの登録用スクリプトです。

キー指定でF10を。登録内容詳細に

 *script %0\Script\setpath.js

をコピペして、設定、適用。

現在のパスをブックマークに登録する際には、F10を。
ブックマークを表示したいときには、F9を押す。

現在いるパスの登録

こっからは、何をしているかのきちんとした説明。

メニュー表示の際、一番上に最近登録したもの、下の方に行くほど以前登録したものがくるようにしたい。というわけで、次のようなスクリプトになります。

//!*script

PPx.Execute("*alias bookmark5 = %'bookmark4'")
PPx.Execute("*alias bookmark4 = %'bookmark3'")
PPx.Execute("*alias bookmark3 = %'bookmark2'")
PPx.Execute("*alias bookmark2 = %'bookmark1'")
PPx.Execute("*alias bookmark1 = %1")

bookmark1〜5と5つ、パスを登録するエイリアスを用意しているわけですね。

*aliasというコマンドですが、これはヘルプによると、

・*alias ABC=DEFG とすると、A_execに「ABC = DEFG」が設定され、コマンドエイリアスとして使用できるようになります。
・*alias ABC= とすると、エイリアス「ABC」が削除されます。

つまり、"*alias bookmark1 = %1" とすることで、bookmark1という変数にカレントディレクトリが登録されるわけです。
一番目のbookmark1には現在のディレクトリを登録。2〜5には、以前登録していたパスを一つずつずらして登録しなおしている訳です。

メニュー

メニューは次のようになります。

M_Bookmark	= {
1:%'bookmark1'	= %j %'bookmark1'
2:%'bookmark2'	= %j %'bookmark2'
3:%'bookmark3'	= %j %'bookmark3'
4:%'bookmark4'	= %j %'bookmark4'
5:%'bookmark5'	= %j %'bookmark5'
RESET	= *script %0\Script\resetpath.js
}

上に行くほど、最近登録したパスになってます。

最後の

RESET	= *script %0\Script\resetpath.js

ですが、登録したパスをすべてリセットするためのもの。resetpath.jsというスクリプトを使ってます。

//!*script

PPx.Execute("*alias bookmark5 = ")
PPx.Execute("*alias bookmark4 = ")
PPx.Execute("*alias bookmark3 = ")
PPx.Execute("*alias bookmark2 = ")
PPx.Execute("*alias bookmark1 = ")

まあ見たとおりですね^^

その他環境変数を使う方法

ちなみに、*setを用いても同様のことができます。
*setというのは、環境変数を設定するコマンド。エイリアス環境変数ですが、どっちとも変数みたいなもので、違いはPPxを終了してもその変数が保存されるかどうかの違いだ、というように僕は単純に理解してます。環境変数のほうだと、PPxを終了したら登録したパスが消えてしまうことになる。こっちのほうが使い勝手がいいひともいるかもしれないです。
やり方は、ただ*aliasのところを*setに変えるだけですが、一応そっちのバージョンも載せときます。Resetするスクリプトはこっちだと別にいらないよね。使い方は上を参考に。基本同じです。

setpath.js
//!*script

PPx.Execute("*set bookmark5 = %'bookmark4'")
PPx.Execute("*set bookmark4 = %'bookmark3'")
PPx.Execute("*set bookmark3 = %'bookmark2'")
PPx.Execute("*set bookmark2 = %'bookmark1'")
PPx.Execute("*set bookmark1 = %1")
M_bookmark
M_bookmark	= {
1:%'bookmark1'	= %j %'bookmark1'
2:%'bookmark2'	= %j %'bookmark2'
3:%'bookmark3'	= %j %'bookmark3'
4:%'bookmark4'	= %j %'bookmark4'
5:%'bookmark5'	= %j %'bookmark5'
}