Vz Editor
2007-05-07T21:05:28+09:00

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

番号記号初期キー機能
#45#J^QJ指定行番号ジャンプ

s==0(編集モード)

指定行番号ジャンプの実行。

ジャンプ位置は行番号モード(Dn)に依存する。論理行番号モード(Dn-)ではlnの値,表示行番号モード(Dn+)ではldの値を参照する。与えた数値が符号つき整数である場合,符号なし整数に置き換えられる。したがって,無意味な数値を与えても「適当に」解釈される。

ジャンプ後のY位置は,編集スイッチEv(ジャンプ後カーソルを画面の中央へ)に依存する。X位置はそのままだが,編集スイッチEn(カーソルを改行以降に表示しない)の設定により変化する場合がある。

戻り値 r:0:ジャンプの実行時(存在しない行数を与えても0), -1:入力のキャンセル

s==1(文字列入力モード)

無効

s==2(コマンドラインモード)

無効

s==3(ファイラーモード)

無効

s==4(メニュー)

戻り値rの内容

s==4(1文字入力モード)

無効

マクロによる拡張

目的外利用

マクロ中の直接行番号指定は&#J(n)を使うため,コマンドの拡張は行わない。

機能の拡張ではないが,削除文字列をヒストリに残さないためのごみ箱として使うことができる。


        #l              ;例えば行末までを削除したのち
        #J              ;入力窓を開く
        #u              ;削除文字列を復活
        #[              ;入力窓を閉じる

入力窓をキャンセルするのだから,使用するヒストリーバッファ(#Jの場合はpw)の履歴にも残らないわけで,それなら別に入力窓なら何でもいいのではないか? …と思うのは早計だ。例えば,検索文字列入力窓#F(#55)をキャンセルすると,ページングモードmpが変化する場合もある。#Jなら変化するのは変数rだけである。


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