Vz Resources
Commands
2019-10-28T21:05:28+09:00

コマンド拡張で学ぶVZマクロ入門 #64(#Y)

番号記号初期キー機能
#64#Y@Y [F04]分割モード切替え

s==0(編集モード)

分割モード切換

戻り値 r:常に 0

ふたつ以上のテキストをオープンしている状態で実行すると,全画面 → 上下に分割 → 左右に分割 → 全画面という順序で編集テキストを切り替える。分割されたもう一方のウィンドウは裏テキストを表示する。

これらの分割状態及びカレントのウィンドウは,編集テキスト変数 wt によって判定が可能であり,ウィンドウ分割モードにより次の値を示す。

編集テキスト変数 wt の値
wt値(Bit)ウィンドウ分割モードとカレントのウィンドウ
0(0000)全画面
2(0010)横分割(上下に分割)の上
3(0011)横分割(上下に分割)の下
4(0100)縦分割(左右に分割)の左
5(0101)縦分割(左右に分割)の右

コマンド#64は分割モードを切り替えるために複数の手順を必要とする。このためマクロで分割モードを直接指定することができるように,コマンド関数 &#64(n) / &#Y(n) が用意されている。

コマンド関数 &#64(n) (&#Y(n)と記述可能)は,ウィンドウの分割モードを直接指定することができる。引数 n は wt に対応する値を与えればよい。

具体的な使い方は,「マクロでの利用」節を参照のこと。

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

無効

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

無効

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

無効

s==4(メニュー)

戻り値rの内容

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

無効

マクロでの利用

既に述べたように,マクロにおいてはコマンド#64は使用せず,代わりに用意されたコマンド関数&#64(n)/&#Y(n)によってより高度な制御を行うことが可能である。

次のコードは,参照用テキストをオープンして選択した文字列を編集テキストに貼り付けるというマクロにおいて,テキストを常に同じ配置でオープンする例である。

= Sample =
* m
1 ""    ?.
        (wc==tc)?{ &m(6) . }            ;オープン可能かチェック
        a=id,                           ;*1 <a>ctiveなファイルのidを保存
        (b=wb)?{ #W b=id, }             ;*2 <b>ack:裏テキストidを保存
        pf[=pr, mx+, #R
        &?("c:\hoge.txt")               ;参照用ファイルを開く
        #m mx-, pf],
        (s==4)?{ 'n' #[ &m(6) &d . }    ;;オープン不能時のエラー処理(必須)
        wt[,                            ;*3 分割モードを保存
        wv[=20,                         ;*4 分割位置を保存して再設定
        &#Y(4)                          ;左右(縦)分割の左側を参照にする
        #W                              ;右側に移動
        &#T(-a) #W                      ;元のテキストを配して左側に戻る

        ;==== 個別の処理は省略 ====
        ;例えば参照テキストから文字列の選択/複写を行うなどの処理
        ;==== 元のテキスト配置に戻す処理をして終了
        wv],                            ;*4 分割位置
        (b)?{ &#T(-b) }                 ;*2 元の裏テキストを復帰する
        &#Y(0])                         ;*3 保存した分割モードを復帰する
        #W &#T(-a)                      ;*1 裏の裏=表のテキストに戻す
*

コマンド拡張で学ぶVZマクロ入門 #64(#Y)
The VZ resources, valid XHTML 1.0 Strict. ©2007-2019 by mezala.