窓数に合わせた連動ビューの制御
    
    
      対応バージョン: PPx181以降プラグイン: tar80/ppm-view
24/9/15 こちらの記事の内容は更新されていません。
ppm-viewを導入すると更新されたカスタマイズ設定を適用できます。
説明
movinigPPvと
behaviorPPvを使い、
PPcの窓数に応じて連動ビューの表示方法を変更する設定集。
連動ビュー起動時にペインが一枚であれば普通に起動。反対窓があればcupturewindowに取り込み。
その際、取り込む前のサイズを記憶しておいて連動ビュー終了時に元のサイズに戻します。
- 一体型横分割のPPc以外でどのような挙動をするかは未確認。
- コマンド内で%*midstr(PPXTEXT.DLL)、スクリプト内で*topmostwindow(PPXWIN.DLL)を使用。
- 常に%si”vState”を意識しておかないとPPvが予想しない位置に飛んでいくので注意が必要。
- PPvの一行編集には以下を仕込んで置かないとコマンド実行時にLOADCUSTされ、意図せぬ設定変更が適用されてしまいます。
  key, *linecust Do,KV_img:ACTIVEEVENT,
       *linecust Do,KV_main:ACTIVEEVENT,
使い方
- Yキーを押下。
キーバインド
PPc
| ACTION | COMMAND | 
|---|---|
| Y | 連動ビュートグル | 
PPv
| ACTION | COMMAND | 
|---|---|
| Y | 連動ビュートグル | 
| : | 一行編集 | 
| SPACE | カーソル行マーク | 
設定
;エイリアス
A_exec = {
cfg = ;設定ファイルのあるディレクトリパス
scr = ;スクリプト親ディレクトリパス
}
;ユーザーコマンド
_Command = {
; 連動ビューの起動状態に合わせて挙動を変える。引数は、UP DOWN LEFT RIGHT SPACEのいずれか
PPVUD = *if 0%*extract(C,"%%*js(PPx.Result=PPx.SyncView;)") %: %K-C"@%*arg(1)" %: *stop
        *execute C,*ppvoption id %*midstr(%n,1) %: %K-C"@%*arg(1)@N"
}
;PPcキーバインド
KC_main = {
Y , *script %'scr'%\syncview.js
}
;PPvキーバインド
KV_main = {
LOADEVENT   , *customize XV_drag=0,1,3,2        ;ドラッグの設定
              *setcust MV_click:L_SPC=@^ENTER   ;左クリック(コンテキストメニュー)
              *setcust @%'cfg'%\zz2HMppvDoc.cfg ;隠しメニュー設定ファイル
              *linecust Do,KV_main:ACTIVEEVENT,%%K"@LOADCUST"
              *if !0%sp"vState" %: *script %'scr'%\movingPPv.js
ACTIVEEVENT , *setcust MV_click:L_SPC=@^ENTER
              *setcust XV_drag=0,1,3,2
              *setcust @%'cfg'%\zz2HMppvDoc.cfg
CLOSEEVENT  , *setcust X_bg:O_%n=100
              *zoom -2
^DOWN       , *PPVUD DOWN
^UP         , *PPVUD UP
':'         , *linecust Do,KV_img:ACTIVEEVENT,
              *linecust Do,KV_main:ACTIVEEVENT,
              *execute %n,%*input(-title:"Execute.." -mode:h)
Y           , *execute C,*script %'scr'%\syncview.js
}
;PPv画像キーバインド
KV_img = {
LOADEVENT   , *setcust MV_click:L_SPC=          ;左クリック(何もしない)
              *setcust XV_tmod=0                ;キャレットモードを解除
              *setcust _User:u_rotate_PPvBG=1
              *setcust @%'cfg'\zz2HMppvImg.cfg
              *customize XV_drag=1,0,3,2
              *script %'scr'%\movingPPv.js
              *linecust Do,KV_img:ACTIVEEVENT,%%K"@LOADCUST"
ACTIVEEVENT , *setcust MV_click:L_SPC=
              *setcust XV_drag=1,0,3,2
              *setcust @%'cfg'%\zz2HMppvImg.cfg
DOWN        , *PPVUD DOWN
LEFT        , *PPVUD LEFT
RIGHT       , *PPVUD RIGHT
UP          , *PPVUD UP
SPACE       , *PPVUD SPACE
}