2019年2月1日金曜日

PPxをできるだけあふっぽくする



コンセプト


  • 思い立って、PPxをできるだけあふっぽくしてみた
  • 以前は自分がよく使うキーバインド以外は実装しなかったが、今回はAFXW.TXTを見ながらできるだけ網羅的にやってみた
  • ビューアは埋め込み方式

事前準備


1.PPxをインストールする
2.以下のPPx Moduleをインストールする

  • Paper Plane xUI Message Module
  • Paper Plane xUI Window Module
  • Paper Plane xUI Text Module
  • Paper Plane xUI Script Module

3.PPxフォルダにScriptという名前で空フォルダを作成する
4.ppxmemo - ファイル置き場から以下をダウンロードし、Scriptフォルダに移動する。

  • MarkCursor.js
  • MarkCursorR.js
  • afx_o.js
  • afx_shift_o.js
  • go_mark.js
  • go_markR.js
  • dirhistorymenu.js


設定の取り込み


  1. 以下のコードをクリップボードにコピーする
  2. カスタマイザーを起動(PPCUSTW.EXEを実行するか、メニューバーから「ツール - カスタマイズ」を選択)し、ファイルタブから「編集して取込」をクリック
  3. クリップボードの内容をペーストした状態で「編集して取込」ウィンドウが開く。左下にある「追加する」のCHECKを外し、OKを押す
  4. PPxを再起動する

X_combo = 1 ; 複数 PPc を一体化 0:しない 1:する
X_combos = B0000011000001000010000000001001,B0000000 ; 一体化時設定
X_mpane = 2,2 ; 一体化時の最大同時表示ペイン数,起動時のペイン数
X_inag = 0 ; 現在窓以外はグレー調に 0:しない 1:する
XC_celD = _AUTO,_AUTO,4,7 ; エントリ表示 文字,背景,カーソル,マーク
CC_log = _WHI,_BLA ; 共用ログ、アドレスバー(文字,背景)_AUTO可
C_eInfo = _AUTO,_DRED,_AUTO,_DBLA,_DBLU,_DCYA, _DBLA,_BRO,_BLU,_WHI,_AUTO,HA00000,_AUTO, _SBLU,_BRO,_CYA,_GRE,_RED,_MAG,_DRED, _AUTO 
XV_drag = 2,1,3,0 ; ドラッグ開始ボタン スクロール,選択,窓移動,ジェスチャ(右のみ)
  ; 0:使用しない 1:左 2:右 3:中/ホイール 4:左右同時 5:第4 6:第5

KC_main = { ; PPcメイン窓
&'\' ,%M_ClipPath
^ENTER = @Z
'_' ,*autodragdrop C#~,r
^UP = @PUP
^\LEFT = @^LEFT
&Z = @F11
H ,*ifmatch /.+/,%NVY %: %KVY"H" %: *stop
 *script %0Script\dirhistorymenu.js %: *execute ,%%j%%M_hoehoe,%1
HOME ,*ifmatch /.+/,%NVY %: %KVY"HOME" %: *stop
 %K"@HOME"
W = @O
'~' ,*cursor 16,-1,5,1,5,0
'^' ,*cursor 16,1,5,1,5,0
'`' = @'+'
'*' = @\F
\D = @D
^\END ,%K~"@^F5
^\RIGHT = @^RIGHT
^END = @^F5
DEL = @\DEL
INS = @\INS
B ,*ifmatch /.+/,%NVY %: %KVY"B" %: *stop
 %K"@B"
E ,%"Text edit"%Orib,editor %FDC
P ,*pack "%2%\|%X|" %Or-
\P ,%"Pack File Ex" %M_xpack
F12 ,%M_cust,C
Q = @&F4
Z = CUSTOMIZE
ESC ,*ifmatch /.+/,%NVY %: *ppvoption sync %: *stop
 %K"@PAUSE"
&RIGHT ,*pairrate -3
&LEFT ,*pairrate +3
'-' = NULL
I ,*countsize
\I ,*ifmatch /.+/,%NVY %: %KVY"\I" %: *stop
 *countsize
L ,*ifmatch /.+/,%NVY %: %KVY"L" %: *stop
 %K"@\L"
J ,*ifmatch /.+/,%NVY %: %KVY"J" %: *stop
 %j%M_pjump
\J ,*ifmatch /.+/,%NVY %: %KVY"\J" %: *stop
 %K"@L"
\F ,*ifmatch /.+/,%NVY %: %KVY"\F" %: *stop
 %K"@\F"
^\UP = @DEL @UP @UP @INS @DOWN
^\DOWN = @DEL @INS @DOWN
O ,*script %0\Script\afx_o.js
\O ,*ifmatch /.+/,%NVY %: %KVY"\O" %: *stop
 *script %0\Script\afx_shift_o.js
^A ,*ifmatch /.+/,%NVY %: %KVY"^A" %: *stop
 %K"@&\A"
^B = @&\B
^C ,*ifmatch /.+/,%NVY %: %KVY"^C" %: *stop
 %K"@&\C"
^D = @&\D
^E = @&\E
^F = @&\F
^G = @&\G
^H = @&\H
^DOWN = @PDOWN
^I = @&\I
^V_H4A = @&\J
^K = @&\K
^L = @&\L
^M = @&\M
^N = @&\N
^O = @&\O
^P = @&\P
^Q = @&\Q
^R = @&\R
^S = @&\S
^T = @&\T
^U = @&\U
^V ,*ifmatch /.+/,%NVY %: %KVY"^V" %: *stop
 %K"@&\V"
^W = @&\W
^X = @&\X
^Y = @&\Y
^Z = @&\Z
'\' ,*ifmatch /.+/,%NVY %: %M_WallPaper,1 %: *stop
 %K"@^\F10
^V_H31 = @&\1
\HOME = @\END
^V_H32 = @&\2
^V_H33 = @&\3
^V_H34 = @&\4
^V_H35 = @&\5
^V_H36 = @&\6
^V_H37 = @&\7
^V_H38 = @&\8
^V_H39 = @&\9
F ,*ifmatch /.+/,%NVY %: %KVY"F" %: *stop
 %K"@\J"
^' ' ,*script %0\Script\MarkCursor.js
^\SPACE ,*script %0\Script\MarkCursorR.js
^V_HBA ,*script %0\Script\go_mark.js
^\V_HBA ,*script %0\Script\go_markR.js
A = @\HOME
\A = @\END
END ,*ifmatch /.+/,%NVY %: %KVY"END" %: *stop
 %K"@F5"
\E ,*ifmatch /.+/,%NVY %: %KVY"\E" %: *stop
 *makefile %1\%"新規テキストの編集"%$E %: %Ob editor %1\%"新規テキストの編集"%$E
\X = @H
^INS ,%z"#17:\"
^DEL ,%z"#10:\"
\V = @I
\M ,*ppcfile !move,%M_pjump,A
\C ,*ifmatch /.+/,%NVY %: %KVY"\C" %: *stop
 *ppcfile !copy,%M_pjump,A
LEFT ,*cursor 4, -1,6,B0100,6,B0100
RIGHT ,*cursor 4, 1,6,B0100,6,B0100
D = @\D
V_HBD = @^D
NUM- ,*pairrate 50
PUP ,*ifmatch /.+/,%NVY %: %KVY"PUP" %: *stop
 %K"@PUP"
PDOWN ,*ifmatch /.+/,%NVY %: %KVY"PDOWN" %: *stop
 %K"@PDOWN"
^LEFT ,*ifmatch /.+/,%NVY %: %KVY"^LEFT" %: *stop
 *cursor 8,1,12,0,12,0
^PUP ,*ifmatch /.+/,%NVY %: %KVY"^PUP" %: *stop
 %K"@^PUP"
F2 ,*ifmatch /.+/,%NVY %: %KVY"F2" %: *stop
 %K"@F2"
^RIGHT ,*ifmatch /.+/,%NVY %: %KVY"^RIGHT" %: *stop
 *cursor 8,1,13,0,13,0
^PDOWN ,*ifmatch /.+/,%NVY %: %KVY"^PDOWN" %: *stop
 %K"@^PDOWN"
F3 ,*ifmatch /.+/,%NVY %: %KVY"F3" %: *stop
 %K"@F3"
F4 ,*ifmatch /.+/,%NVY %: %KVY"F4" %: *stop
 %K"@F4"
F5 ,*ifmatch /.+/,%NVY %: %KVY"F5" %: *stop
 %K"@F5"
SPACE ,*ifmatch /.+/,%NVY %: %KVY"SPACE" %: *stop
 %K"@SPACE"
^F4 ,*ifmatch /.+/,%NVY %: %KVY"^F4" %: *stop
 %K"@^F4"
\L ,*ifmatch /.+/,%NVY %: %KVY"\L" %: *stop
 %K"@\L"
\F5 ,*ifmatch /.+/,%NVY %: %KVY"\F5" %: *stop
 %K"@\F5"
\SPACE ,*ifmatch /.+/,%NVY %: %KVY"\SPACE" %: *stop
 %K"@\SPACE"
\S ,*ifmatch /.+/,%NVY %: %KVY"\S" %: *stop
 %K"@\S"
\U ,*ifmatch /.+/,%NVY %: %KVY"\U" %: *stop
 %K"@\U"
TAB ,*ifmatch /.+/,%NVY %: %KVY"TAB" %: *stop
 %K"@TAB"
2 ,*ifmatch /.+/,%NVY %: %KVY"2" %: *stop
 %K"@2"
4 ,*ifmatch /.+/,%NVY %: %KVY"4" %: *stop
 %K"@4"
8 ,*ifmatch /.+/,%NVY %: %KVY"8" %: *stop
 %K"@8"
\N ,*ifmatch /.+/,%NVY %: %KVY"\N" %: *stop
 %K"@\N"
\T ,*ifmatch /.+/,%NVY %: %KVY"\T" %: *stop
 %K"@\T"
^SPACE ,*ifmatch /.+/,%NVY %: %KVY"^SPACE" %: *stop
 %K"@^SPACE"
&ENTER ,*ifmatch /.+/,%NVY %: %KVY"&ENTER" %: *stop
 %K"@&ENTER"
R ,*ifmatch /.+/,%NVY %: %KVY"R" %: *stop
 %K"@R"
\END ,%K~"@F5"
}
KC_tree = { ; PPcツリー(キー制限有,V_xx 形式を推奨)
}
KC_incs = { ; PPcインクリメンタルサーチ(制限有)
}
K_list = { ; PPc AutoD&D(制限有)
}
KV_main = { ; PPvメイン窓
&ENTER ,*ifmatch /.+/,%NVX %: *closeppx "VX" %: *stop
 %Ox *ppv -bootid:X -k *ppv -r %FCD
ENTER ,*ifmatch "!/VL/",%n %: *stop
 *ifmatch "/CA/",%*extract(C"%%n") %: *closeppx "VL" %: *execute C,*pane newpane CB %%: *focus CA %: *stop
 *ifmatch "/CB/",%*extract(C"%%n") %: *closeppx "VL" %: *execute C,*pane newpane CA %%: *pane swappane %%: *focus CB
1 = @END
2 = @DOWN
3 = @PDOWN
4 = @LEFT
6 = @RIGHT
7 = @HOME
8 = @UP
9 = @PUP
E ,%"JMTE|Text edit"%Orib,editor %{%FDC%}
^LEFT ,%K-C"@UP@N"
^RIGHT ,%K-C"@DOWN@N"
^UP ,%K-C"@\SPACE@N"
^DOWN ,%K-C"@SPACE@N"
F12 ,%M_cust,C
}
KV_page = { ; PPvテキスト(ページ)追加設定
^' ' = @I
&Z ,%KC"@F11
&DOWN ,%K-C"@DOWN@N"
&UP ,%K-C"@UP@N"
\C = @C
\T = @C
\N = @U
\ENTER ,%"JMTE|Text edit"%Orib,editor %FDC
8 ,*viewoption -tab:8
4 ,*viewoption -tab:4
2 ,*viewoption -tab:2
TAB ,*RotateExecute id,*viewoption -hex,*viewoption -text
\O ,*viewoption -utf8
\I ,*viewoption -utf16be
\U ,*viewoption -utf16
\S ,*viewoption -sjis
\J ,*viewoption -jis
\E ,*viewoption -euc
\SPACE = @'['
\F5 = @'['
\L = @'['
H = @'['
\F4 = @B
\F = @B
SPACE = @']'
L = @']'
F5 = @']'
F4 = @F
F3 = @J
^LWIN = @END
^RIGHT = @END
F2 = @END
^PUP = @HOME
F1 = @HOME
^LEFT = @HOME
}
KV_crt = { ; PPvテキスト(キャレット)追加設定
^RIGHT = @END
^LEFT = @HOME
}
KV_img = { ; PPv画像追加設定
^W ,*ifmatch "/CA/",%*extract(C"%%n") %: %Q"現在の画像を壁紙にしますか?" %: *customize X_bg:P_ca=%FDC %: *customize X_bg:T_ca=1 %: *stop
 *ifmatch "/CB/",%*extract(C"%%n") %: %Q"現在の画像を壁紙にしますか?" %: *customize X_bg:P_cb=%FDC %: *customize X_bg:T_cb=1
F ,*togglewinsize
F4 ,*togglewinsize
L = @K
R = @L
END ,*zoom -1
HOME ,*zoom 0
\R = @K
'\' ,%M_WallPaper,1
\L = @L
}

E_cr = { ; [Enter]用判別
BAT ,%M_Ccr,!X
EXE ,%M_Ccr,O
COM ,%M_Ccr,!X
:EXE32C ,%M_Ccr,!X
:EXEX64C ,%M_Ccr,!X
:EXEDOS ,%M_Ccr,!X
:SCR ,%M_Ccr,O
:HELP ,%M_Ccr,O
. ,%M_Ccr,!V
DOC ,%M_Ccr,!V
TXT ,*allview
:UTEXT ,%M_Ccr,!V
:DOC95 ,%M_Ccr,!V
:DOC97 ,%M_Ccr,!V
:DOCX ,%v"%C\word\document.xml"
JPEG ,*ifmatch "/CA/",%n %: *halfview %: *stop
 *allview
:JPEG ,*ifmatch "/CA/",%n %: *halfview %: *stop
 *allview
BMP ,*ifmatch "/CA/",%n %: *halfview %: *stop
 *allview
:BMP ,*ifmatch "/CA/",%n %: *halfview %: *stop
 *allview
:DIR = C_DIR
:LHA = C_DIR
:PKZIP = C_DIR
:CAB = C_DIR
:XLF = C_DIR
GZ = C_DIR
7Z = C_DIR
CAB = C_DIR
RAR = C_DIR
:XVBS ,%"Script" *script %{%R%|%}
:XPLS ,%"Script" *script %{%R%|%}
MAKEFILE. ,%{MAKE %|%}
MAK ,%{MAKE -f%C%}
PNG ,*ifmatch "/CA/",%n %: *halfview %: *stop
 *allview
JPG ,*ifmatch "/CA/",%n %: *halfview %: *stop
 *allview
GIF ,*ifmatch "/CA/",%n %: *halfview %: *stop
 *allview
CPP ,*allview
H ,*allview
C ,*allview
L ,*allview
EL ,*allview
HTML ,*allview
HTM ,*allview
XYZZY ,*allview
EMACS ,*allview
SCM ,*allview
INI ,*allview
VBS ,*allview
JS ,*allview
PY ,*allview
PYW ,*allview
CFG ,*allview
LOG ,*allview
HOWM ,*allview
}

-|M_ClipPath =

M_ClipPath    = {    ** comment **
ファイル名\t【カーソル上】    = *cliptext %R %: *linemessage Clip : %R
フルパスファイル名\t【カーソル上】    = *cliptext %FCD %: *linemessage Clip : %FCD
--    = 
フルパス名    = *cliptext %1 %: *linemessage Clip : %1
--    = 
ファイル名\t【マーク・スペース区切り】    = *cliptext %#FC %: *linemessage Clip : %#FC
フルパスファイル名\t【マーク・スペース区切り】    = *cliptext %#FCD %: *linemessage Clip : %#FCD
}
-|M_WallPaper =

M_WallPaper = { ** comment **
PPC全体の壁紙にする(&1) = *customize X_bg:P_ca=%FDC %: *customize X_bg:P_cb=%FDC %: *customize X_bg:T_ca=20 %: *customize X_bg:T_cb=20
PPC[&A]の壁紙にする = *customize X_bg:P_ca=%FDC %: *customize X_bg:T_ca=1
PPC[&B]の壁紙にする = *customize X_bg:P_cb=%FDC %: *customize X_bg:T_cb=1
-- =
PPC全体の壁紙をナシにする = *customize X_bg:-|P_ca= %: *customize X_bg:-|P_cb= %: *customize X_bg:-|T_ca= %: *customize X_bg:-|T_cb=
PPC[A]の壁紙をナシにする = *customize X_bg:-|P_ca= %: *customize X_bg:-|T_ca=
PPC[B]の壁紙をナシにする = *customize X_bg:-|P_cb= %: *customize X_bg:-|T_cb=
-- =
壁紙の明るさを調整する = *customize X_bg:Bright=%"明るさ(Bright)"%{%*getcust(X_bg:Bright)%}
}
X_win = { ; 表示形式全般 *layout
 ;  +--------B8:1=タイトルバーを表示させない
 ;  |+-------B7:1=(PPcのみ)簡易ヘッダを表示する
 ;  ||+------B6:1=(PPcのみ)標準の情報行を表示させない
 ;  |||+-----B5:1=標準のステータス行を表示させない
 ;  ||||+----B4:1=標準のツールバーを表示する(PPc:B_cdef,PPv:B_vdef)
 ;  |||||+---B3:1=(PPcのみ)スクロールバーの位置を下端<->右端で切替
 ;  ||||||+--B2:1=スクロールバーを表示させない
 ;  |||||||+-B1:1=タスクバー等で1つにまとめる(要PPtray)ただし不都合有り
 ;  ||||||||+B0:1=MenuBar表示
V = B100100100
}

_others = { ; その他設定
SyncViewID = Y
}
_Command = { ; ユーザコマンド・関数
allview = %Oi *ppv -bootid:L %*arg(1) %*name(CD,"%R","%1") %: *wait 100,1 %: *execute C,*capturewindow VL -pane:0 %: *execute C,*pane hide ~
halfview = *ifmatch /.+/,%NVY %: *ppvoption sync %: *stop
 %Oi *ppv -bootid:Y %*name(CD,"%R","%1") %: *ppvoption sync %: *wait 100,1 %: *capturewindow VY -pane:~ -selectnoactive
}