Vz Editor
2005-11-14T21:18:18+09:00

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

番号記号初期キー機能
#08#d^D [-->]

s==0(編集モード)

返り値 r: 0=移動成功,-1=ファイルの末尾で移動失敗

ファイル末尾で実行した場合,カーソルは移動できず命令失敗でrに-1(通常は成功で0)を返します。

マクロでファイル末尾に向かっての処理では,返り値を判定しないと無限ループに陥る可能性があります。ctが0([EOF])かどうかを判定する方法は確実と言い切れないので注意してください。詳細は,#06の章を参照してください。

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

文字列の終端では何もせず,返り値も得られません。このため文字列終端かどうか判定するには,実行前にlx(表示カーソルの桁位置)を保存し,実行後に参照して現桁位置と比較する必要があります。

    (-1){ r=lx, #d (lx==r)?{} }

無条件で終端にカーソルを移動してよいのであれば,#>(論理行末への移動)を使用します。

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

生のDOSプロンプトと異なり,カーソルを移動しても文字は消去されないので,編集を加えることもできます。編集モードと異なり,コマンドラインの文字列終端で実行しても返り値は得られません。このためコマンドラインの終端にカーソルがあるかどうかを判定するには,lx(表示カーソルの桁位置)の保存・参照が必要です。通常は,無条件で終端にカーソルを移動してよいでしょうから,#>(論理行末への移動)を使用します。

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

s==4(メニュー)

返り値の詳細は#07の章を参照してください。

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

無効


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