Vz Editor
2005-11-14T21:00:10+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文字入力モード)

編集モード以外では,エスケープ(キャンセル)としてはたらきます。


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