Vz Resources
Commands
2018-09-09T15:05:24+09:00

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

番号記号初期キー機能
#01^[直前のコマンド実行

直前のコマンドを再度実行するコマンドである。運が良ければ?直前のマクロも実行できる。マクロ中では使用できない。次の例のようにマクロの中に記述しても何も起こらず,失敗を示す値(-1)が返される。

1  "" ?.
        #s #01 #01 #01          ;(4){ #s } のつもり

本当に直前の「コマンド」か?

直前に実行した「コマンド」を再度実行するのであれば,次のマクロを実行した直後に#01を実行することで,直前のコマンドを示す変数(cm)に値が代入されている#08が実行されるはずだ。

1 ^\ "" ?.
        #07 cm=8,

ところが,実行されるコマンドは#07の方になるのである。

先のマクロの実行キーを外して,

1    "" ?.
        #07 cm=8,

…とし,マクロメニューから実行しておく。そして,#01を実行すると再度マクロメニューが表示される。

つまり,#01の機能は「直前のコマンド実行」ではなく,「直前のコマンドキーの再現」であろうという想像がつく。そのため,直前のコマンドだけでなく,直前のマクロも再実行できるわけだ。「運が良ければ」というのは,直前に実行したマクロがマクロメニューなどから呼ばれていた場合,呼出元のマクロメニューの方が実行されてしまって,目的のマクロが実行されるわけではないからである。


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