究極の文字列取得

作者: 上村 郁夫

 VZ標準の[CTRL]+[L](検索文字列の連続取得)は、範囲が伸びるにしたがって、検索文字列ヒストリーに余計な文字列がたまります。
寝台車と食堂車を連結する。
 という文章の「寝」にカーソルがある場合、
1回目→「寝台車」
2回目→「寝台車と食堂車」「寝台車」
3回目→「寝台車と食堂車を連結」「寝台車と食堂車」「寝台車」
 という具合に、以前に取得した文字列はヒストリーの奥にたまっていきます。
 GET.DEFを使えば、最後に取得した文字列だけが残ります。

 オマケの機能も充実しています。

  • 文字境界ブロックの伸長
    範囲なしのブロックモード([CTRL]+[B]でブロックモードにした直後の状態)で起動すると、文字境界のブロックが単語の区切りを認識しながら伸びていきます。適当なところで[CTRL]+[Y]で削除したり、[CTRL]+[K][K]で記憶したりできます。
  • ファイラーでカーソル位置のファイル名を取得
    ファイラーで実行すると、カーソル位置のファイル名を検索文字列ヒストリーに取得します。
  • ファイル名の補完
    文字入力ウィンドウまたはコマンドラインで実行すると、ファイル名を補完します。(第1集収録のT.Tanomura氏作EXPAND.DEF必要)

    •         ┌─【入力ファイル】──────────┐
              │C:\DEF\T                              │途中まで入力したところ
              └───────────────────┘
              ┌─【入力ファイル】──────────┐
              │C:\DEF\TIMEKEEP.DEF                   │[CTRL]+[L]で補完
              └───────────────────┘
      
(「Vzマクロコレクション2」所収)

download
======== get.def ======== by I.Kamimura
* M
89 ^L   "究極の文字列取得"
        (s)? {
                (s==1||s==2)? { &z("expand") >* }       ; コマンドライン
                (s==3)? { #R #[ &Sh(ps,pr) &m(ps) }     ; ファイラー
                .
        }
        (cm-59||mb)? {
                ((mb && xc==0)||cm==59)? >A
                #G .
        }
        cp[, (ct<2)? >A
        cp+=r, #?
        di=ps, &>
:A      &s
        (ct>1)? { a=ct, #d (ct>=a)? >A }
        (mb)? { cm=59, &d. }
        #b cp], &d #G

0:      ;--( rem_his.asm )---
        ; INPUT  di = his ptr

        &i("$(8B,F7,AC,84,C0,75,FB,8B,04)$
        $(85,C0,74,05,AC,AA,E9,F5,FF,AB,C3)")
*
======== End of get.def ========