削除方向とは[DEL]系か[BS]系かということです。例えば#l
(行末まで削除)を実行後,#u
(削除文字列の復活)を実行すると,カーソル位置は復活文字列の先頭になります。逆に#H
(行頭まで削除)を実行した場合は,カーソル位置は復活文字列の末尾になります。削除バッファをスタックのような文字列の記憶場所として利用した場合には,カーソル位置が標準の動作の逆になるほうが便利なことも多く,このマクロを復活前に実行することで実現できます。
1 ^\ "" (((mg..-3).-1)^=$80,
現実的にはマクロの実行とカーソルの移動で手間が同じなので,拡張マクロの一部として組み込むのがよいでしょう。
#u
を実行すると,復活後のカーソル位置を逆にします。
20 ^U "" (ks&1)?{ (((mg..-3).-1)^=$80, } #u
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
19 ^QY "" #l (ks&1)?(((mg..-3).-1)^=$80, ;cursor ->$
直前の行の同一桁位置にある文字を複写します。リストなどである程度同じ記述がある場合に,カーソルを動かして複写する手間を省きます。
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
画面分割時に,裏テキストの配置を動かさずに編集テキストを順に切り替えます。ひとつの文書を参照しながら,複数の文書を編集する場合に非常に便利です。
65 @L "stay_wb" ?. (wt)??{ &#T(wn+1*(wn>0)) . } &#T(1+wn+r1+wn%wc==wb.2)
ワンキーでファイラーを起動します。コマンドラインからファイラーを起動するキーアサインと統一してあります。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 } ;共用の再表示部品
.