Vz Editor
2018-09-09T21:06:30+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(メニュー)

戻り値rの内容

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

無効

マクロによる拡張

基本的なコマンドのため提示しない。


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