なかなか難しい話ですね。
…というのは,環境によってキーの戻り値は異なると思いますし,
キー入力待ちで別のマクロが実行されてしまう場合というのを考えると,
使う人の環境がすべてということになるかと思います。
個別の対応が必要ではないかと想像しますが,それに先立って確かめたい
ことがあります。まず,キー入力待ちが &p の場合にマクロが実行されると
変な動きになると思いますので,&p の前後で mx+, &p mx-, のように mx の
オン・オフを行い,動きがどうなるか確かめてみてください。
個々の環境で振る舞いが違ってくるのは,その後の話です。
mx を操作してもうまくいかない場合は,次のマクロを実行して入力キーの
値を確かめてください。&pの戻り値は文字やコマンドキーで異なります。
= test = by H_ear
#if 0
&pでのキーの戻り値は?
#endif
* mad for vz!
1 ^\ "" ?.
&m("キーをどれか押して")
mx+, &p mx-, >>
00: ; ---- look result ----
&m("Result: %d %u $%x '%c' $"%16s$"",r,r,r,r,r)
*