行・ブロック消去

作者: 上村 郁夫

 ある行・ブロックを連続して複写([CTRL]+[K][C])する作業を想像してください。複写先に邪魔な行・ブロックがあったからといって、それを削除([CTRL]+[Y])するとテキストスタックに積まれて、本来複写したい行・ブロックは2番目に押し込まれてしまいます。一計を案じて、先に複写を済ませて、後から邪魔な行・ブロックを削除すれば、そのときだけはうまくいきますが、次の複写先では、邪魔な行・ブロックがテキストスタックの先頭にきており、同じジレンマにおちいります。
 ERACE.DEFを使えば、邪魔な行・ブロックをテキストからもメモリからも完全に消去します。
 上述のようなせっぱ詰まった状況でなくても、テキストスタックに不要な行・ブロックを残したくない潔癖症の人もいることでしょう。
 VZ.DEFの初期設定では、[CTRL]+[K][Y]は「スタックの消去」に割り当てられていますが、あまり使わない機能でしょう。ERASE.DEFにピッタリのキーアサインです。

download
======== erase.def ======== by I.Kamimura
* M
80 ^KY  "行・ブロック消去"
        ?. ux[+, #y ux],
;*
;======== End of erase.def ========
(「VzエディタVer.1.6強化書」所収)


【作者コメント】
書籍ではスペルを間違えてerace.defとなっていました(恥)。
uxはVzエディタVer1.6で新設されたオプション(文字、行・ブロック削除時のバッファへの格納禁止)です。Ver1.5x時代には以下のような裏技を使っていました。いったんテキストスタックに積んだあとで消去するという手順のため、スタックの古い履歴が押し出されて消えてしまう場合もあるという欠点がありました。
80 ^KY  "行・ブロック消去"
        kp[, #y &#51(r])