Vz resources : workshop
2004-02-02T00:00:00+09:00

1行野郎

編集コマンド系

削除方向を反転

用途

削除方向とは[DEL]系か[BS]系かということです。例えば#l(行末まで削除)を実行後,#u(削除文字列の復活)を実行すると,カーソル位置は復活文字列の先頭になります。逆に#H(行頭まで削除)を実行した場合は,カーソル位置は復活文字列の末尾になります。削除バッファをスタックのような文字列の記憶場所として利用した場合には,カーソル位置が標準の動作の逆になるほうが便利なことも多く,このマクロを復活前に実行することで実現できます。

1 ^\ "" (((mg..-3).-1)^=$80,

現実的にはマクロの実行とカーソルの移動で手間が同じなので,拡張マクロの一部として組み込むのがよいでしょう。

組込例 1
シフトキーを押しながら^U#uを実行すると,復活後のカーソル位置を逆にします。
20 ^U "" (ks&1)?{ (((mg..-3).-1)^=$80, } #u
組込例 2
m.gann師の^[DEL]で削除バッファに取得した時は常に反転させる例
19 ^[DEL] ""    ;Del -> (41)    ;[\] Copy, view too / csr ptr
        (ks&1)?{ &s #] mr[-,            ;pk14#11003 m.gann
                #l #54 mr], #?          ;#] mr[-, #l mr], #54
                (((mg..-3).-1)^=$80,
                . }
        #l
組込例 3
^QYのシフト実行で反転させる例
19 ^QY "" #l (ks&1)?(((mg..-3).-1)^=$80,        ;cursor ->$

dBASEコマンド風

直前行の同一桁を順次複写(carrychr)

用途

直前の行の同一桁位置にある文字を複写します。リストなどである程度同じ記述がある場合に,カーソルを動かして複写する手間を省きます。

1 ^\ "carrychr" ?. #? #e (r==-1)?. (ct<2)?{ #x . } cd[, #x &o(0])

表示切替

表示行長切替トグル

用途

ワンキーでスクリーンモード相応の表示桁数(通常は80桁)と最大桁数(255)を切り替えます。広めのスクリーンモードで書かれたプログラムソースや文書を見やすく表示する場合に使用します。

1 "" ?. (we!=wd)?we=wd, ?{ (ks&1 && wt>3)?{ (2){ #W we=wx, } (0) }?we255, } &d

裏テキストを動かさずに表テキストを切替(stay_wb)

用途

画面分割時に,裏テキストの配置を動かさずに編集テキストを順に切り替えます。ひとつの文書を参照しながら,複数の文書を編集する場合に非常に便利です。

65 @L "stay_wb" ?. (wt)??{ &#T(wn+1*(wn>0)) . } &#T(1+wn+r1+wn%wc==wb.2)

ファイラー

いきなりファイラー(tofiler)

用途

ワンキーでファイラーを起動します。コマンドラインからファイラーを起動するキーアサインと統一してあります。1行挿入する場合は^Nを使用します。

60 \[CR] "tofiler" ?. #O #m

【ファイラー】表窓にもたれたまま裏窓を開ける

用途

ファイラーで単窓/複窓を切り替える標準のショートカット"W"は,単窓から複窓モードに移行すると,ファイラーカーソルは新しく開いた右窓に移動しますが,このマクロはカーソルを左窓にとどめたまま右窓を開きます。

1 "" (fg.0) #W ?? #93

通常は独立のマクロにせず,vzfl.def等のファイラーマクロに設定します。

ファイラーマクロへの設定例
1 "!Filer"
        (r)??{(fg.0||wa)?. #W #93 .}    ;y.mikome
        vp..-7=0,                       ;★★init getnamp (by m.gann)★★
        r[, &Fm(r)
        (r>=0)?{ sp+=2,
                (r)>?{ #F #L #M #P #S #V #W #+ #> #< #O #E }
        }
        &e("#]") #]                     ;To Free by Tomo
        r], (r)>!{
                Y>W                     ;'Y'をキーに使用する例
        }
.:W     (fg.0) #W ?? #93                ;window / stay cursor
.

【ファイラー】裏窓に同一のディレクトリを表示

用途

ファイラーのディレクトリ内部で圧縮ファイルの展開などを行いたい場合に,カーソル側の窓と同じディレクトリを反対側の窓で開きます。

1 "" (fg.0)?#93 ?#W &s #P &?(fl..0+34) &d #m #93        ;same dir dst
ファイラーマクロへの設定例
1 "!Filer"
        (r)??{(fg.0||wa)?. #W #93 .}    ;y.mikome
        vp..-7=0,                       ;★★init getnamp (by m.gann)★★
        r[, &Fm(r)
        (r>=0)?{ sp+=2,
                (r)>?{ #F #L #M #P #S #V #W #+ #> #< #O #E }
        }
        &e("#]") #]                     ;To Free by Tomo
        r], (r)>!{
                O>O                     ;'O'をキーに使用する例
        }
.:O     (fg.0)?#93 ?#W &s #P &?(fl..0+34) &d #m #93      ;same dir dst
.

【ファイラー】ワンキーで名前昇順/日付降順ソート切替

用途

ファイラーでよく使用される並べ替えは,ファイル名の昇順か更新日時の降順であろうかと思います。この2種類のソート規則を簡単に切り替えるマクロです。切替だけでなく,反対側の窓を含めて最新の状態に表示を更新します。

1 "" fs^=5, #U (fg.0)?{ &s #93 &d #U #93 }
ファイラーマクロへの設定例
1 "!Filer"
        (r)??{(fg.0||wa)?. #W #93 .}    ;y.mikome
        vp..-7=0,                       ;★★init getnamp (by m.gann)★★
        r[, &Fm(r)
        (r>=0)?{ sp+=2,
                (r)>?{ #F #L #M #P #S #V #W #+ #> #< #O #E }
        }
        &e("#]") #]                     ;To Free by Tomo
        r], (r)>!{
                U>U                     ;'U'をキーに使用する例
        }
.:U     fs^=5, #U (fg.0)?{ &s #93 &d #U #93 }
.
ワンキーで順に切り替えていくマクロと併用する例
1 "!Filer"
        (r)??{(fg.0||wa)?. #W #93 .}    ;y.mikome
        vp..-7=0,                       ;★★init getnamp (by m.gann)★★
        r[, &Fm(r)
        (r>=0)?{ sp+=2,
                (r)>?{ #F #L #M #P #S #V #W #+ #> #< #O #E }
        }
        &e("#]") #]                     ;To Free by Tomo
        r], (r)>!{
                Y>Y                     ;順次切替を'Y'に割当て
                U>U                     ;名前順/新しい順切替トグル
        }
.:Y     fs=fs<<1&$7f+fs!, >u            ;順次切替
.:U     fs^=5,                          ;切替トグル
 :u     #U (fg.0)?{ &s #93 &d #U #93 }  ;共用の再表示部品
.

The VZ resources. ©2002-2004 by mezala. mailto:mezala@nifty.com