Vz Resources
Commands
2009-11-22T14:51:58+09:00

コマンド拡張で学ぶVZマクロ入門 #30

番号記号初期キー機能
#30#@^@ \[INS]ページングモード切替

ページングモードを切り替える。VZは下記の通り複数のページングモードを持ち,状況に応じたページングモードに切り替えることで,画面をスクロールしたり,検索を実行したりする。

戻り値 r:常に 0

s==0(編集モード)

ページングモード(システム変数mpの値に対応)を「画面ページングモード」,「タイトルサーチモード」,「文字列検索モード」に順次切り替える。ページングに割り当てられたキーは,ページングモードにより振る舞いが切り替えられる。

ページングモード
モードmp値ステータスライン表示ページングキーの振る舞い備考
画面ページングモード0P/Pg画面単位のページ送りオプションEh(ページング単位)により全画面(-)/半画面(+)と送り単位が切り替わる
タイトルサーチモード1C/Cm見出し行(見出し文字で始まる行)単位でページ送りオプションEt(タイトルサーチ)が無効(-)ではこのモードに切り替わらない
文字列検索モード2S/Stの反転#55等で設定された文字列を検索するヒストリーバッファps(検索文字列バッファ)の先頭にある文字列を検索文字列とする。なお複数の検索オプションの値によりヒットする文字列は変わってくる。検索オプション(\w,\c,\z,\x,\i,\f)については次表の各項目を参照のこと。
検索オプション
検索モードオプション変数前置シンボル備考
ワードサーチEw\w*の前置・付加で逆に作用する
大小文字同一視Ec\c英字のみ有効
全半角文字同一視ZH\z英数字・一部の記号に有効
正規表現検索RX\x後方参照は\(RE\)
特殊文字を文字そのものと扱う\i\, * などのメタキャラクタ
あいまい検索\f高橋版でfuzzy.com常駐

s==1(文字列入力モード)

無効

s==2(コマンドラインモード)

無効

s==3(ファイラーモード)

無効

s==4(メニュー)

戻り値rの内容

s==4(1文字入力モード)

無効

マクロによる拡張

見米快之氏のページングモード切替

y.mikome氏がniftyserve時代に自身のプロフィールに掲載していたマクロである。タイトルサーチモードから文字列検索モードを経ずに画面ページングモードに戻るというもので,連続実行の場合は通常通りにPCSの順で切り替えるようになっている。こういったマクロはまるで空気の存在のように自然に振る舞いかつ手放せないものになるだろう。

30 ^@ ""        ;Paging
        ?. (cm-30 && mp)?mp2, #@        ;ykome(prof)

なお,マクロの動作が自然であると感じられる場合はよいが,こういうものの動作は「好み」に属するものなので,異なる動きの方が自然に感じられるという人もいるだろう。このような個々の好みに応えられるというのも小物マクロのよいところだ。

30 ^@ ""        ;Paging
        ?. (cm!=30 && mp==0)?mp1, #@    ;0->2,2->0->1

これは自分で使っているものの例だが,ちょっと変だと思う。実は画面ページングモードのまま自動検索を行うマクロを使っている関係で,通常とは違う動きになっている。しかも普段はあまりタイトルサーチを使わないので,画面ページングモードからいきなり文字列検索モードへ遷移するようにしてある。


コマンド拡張で学ぶVZマクロ入門 #30
The VZ resources, valid XHTML 1.0 Strict. ©2007-2009 by mezala.