Vz Editor
2018-09-09T18:08:32+09:00

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

番号記号初期キー機能
#03#[[ESC] @Xエスケープ

s==0(編集モード)

ep(編集モード時の[ESC]の扱い)を有効にすることによって,プリフィクスでなく終了命令として機能するようになる。ただし,このコマンドはVZをいきなり終了させるものなので,通常は ep[+, &p ep], &o(r+n) のようにキー入力待ち状態をループさせるマクロ(所謂モード型マクロ)で [ESC] をキャンセルキーとして受け取りたいときにコマンドとして機能させることになろう。マクロ中で編集モード時に #03 では,いきなりVZ自体が終了してしまうので注意を要する。

= test
*m
1 "いきなり終了"
        ?. #[ (s==4)?'y'        ;『編集テキストを放棄しますか』にyesで応える
*

これは正しい終了とはとても言えないだろう。編集中でファイルが未保存でも,いきなり終了してしまう。

逆に,すべての編集ファイルをセーブし終えているときや,もともとファイルを参照しているだけでさっさと終了したいときも有り得る。そういう時には非常に便利なコマンドである。

オプションSq(Close,Quitで即座に終了)が無効になっている環境では,標準組込マクロの [ESC]X(全ファイルのクローズ)を実行してファイルをすべて閉じても,ファイラーに遷移してもうひと手間・ふた手間が必要だが,@Xでエスケープすれば即座に終了させることができる。

職場などの共用端末で作業していて,中座したまま終業となり,こんなことはないだろうか?

「あのー,○○○さん,黒い画面のが出てるんですけど,[×]を押すと『終了できません』って警告が…」

「あー,ごめん,ごめん。[ALT]キーを押しながら[X]を押してください。」

…これで簡単に電源が落とせるというわけだ。

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

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

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

s==4(メニュー)

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

編集モード以外では,エスケープ(キャンセル)としてはたらく。メニューや入力ウィンドウ,入力待ち等はキャンセルして,戻り値-1をrにセット(下位7ビットがコマンド番号を示さないことに留意)


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