PPcとPPvのIDを一対一対応させる

あいさつ

僕は、PPvでカーソル上下でPPcのカーソルを動かし、そのファイルを閲覧できるようにしている。PPvのファイル切り替えをカーソル上下左右でとかPPvのカスタマイズを参照。
ただ、これだと複数のPPcを開いたときに、たまに思った通りの挙動をしないことがある。たとえば、

  1. PPc[A]でメモフォルダに移動しPPvを起動、閲覧する
  2. 思いついたことがあったので、PPc[B]で別のドキュメントフォルダを開き、そこのファイルをエディタで開いて何か書く
  3. じゃあまたメモの閲覧の続きをしようか、とPPvに戻りカーソルを上下すると、今度はPPc[B]に連動してドキュメントフォルダ内のファイルを閲覧してしまう

という具合だ。どのPPcがアクティブになったかで、挙動が変わってしまうわけですね。

これを解決するため、PPcとPPvのIDを一対一対応させて、カーソル上下の連動をIDに対応させようと思った。

拡張子別判別実行の挙動

まずは拡張子別判別実行から。

E_cr	= {	; [Enter]用判別
TXT	,%0\PPVW.EXE -bootid:%*regexp(%n,"/.(.)/$1/")  %FCD
HOWM	,%0\PPVW.EXE -bootid:%*regexp(%n,"/.(.)/$1/")  %FCD
JPEG	,%0\PPVW.EXE -bootid:%*regexp(%n,"/.(.)/$1/")  %FCD
:JPEG	,%0\PPVW.EXE -bootid:%*regexp(%n,"/.(.)/$1/")  %FCD
BMP	,%0\PPVW.EXE -bootid:%*regexp(%n,"/.(.)/$1/")  %FCD
PNG	,%0\PPVW.EXE -bootid:%*regexp(%n,"/.(.)/$1/")  %FCD
JPG	,%0\PPVW.EXE -bootid:%*regexp(%n,"/.(.)/$1/")  %FCD
GIF	,%0\PPVW.EXE -bootid:%*regexp(%n,"/.(.)/$1/")  %FCD
CFG	,%0\PPVW.EXE -bootid:%*regexp(%n,"/.(.)/$1/")  %FCD
}

これで、PPcのIDに対応したPPvが起動するようにする。

PPvのキーバインド

ついで、PPvのキーバインドをカスタマイズ。カーソル上下で連動するPPcをIDに対応させる。

KV_main	= {	; PPvメイン窓
UP	,%KC%*regexp(%n,"/.(.)/$1/") "@UP V"
DOWN	,%KC%*regexp(%n,"/.(.)/$1/") "@DOWN V"
LEFT	,*execute C%*regexp(%n,"/.(.)/$1/"),*cursor 6, -1 %: %KC%*regexp(%n,"/.(.)/$1/")"V"
RIGHT	,*execute C%*regexp(%n,"/.(.)/$1/"),*cursor 6, 1 %: %KC%*regexp(%n,"/.(.)/$1/")"V"
}

これで、PPvのIDに対応したPPcでカーソル移動するようになる。