mirror of
https://github.com/NishiOwO/VZEditor.git
synced 2025-04-21 16:44:40 +00:00
424 lines
12 KiB
Plaintext
424 lines
12 KiB
Plaintext
==============================================================================
|
||
VZ Editor Version 1.56 Copyright (C) 1989 by c.mos
|
||
MACRO.DOC
|
||
==============================================================================
|
||
|
||
このドキュメントには、VZのマクロを使用する際のいつくかの留意点、および数種類の追加マクロが記載されています。
|
||
|
||
|
||
|
||
目 次
|
||
-----------------------------------------
|
||
1.マクロを組み込む際の注意
|
||
2.追加マクロ集
|
||
-----------------------------------------
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
-----------------------------------------
|
||
1.マクロを組み込む際の注意
|
||
-----------------------------------------
|
||
|
||
■ VZ.DEFにマクロを追加していった場合
|
||
vz.defの「* M マクロ」の項に、使用するマクロをどんどん加えていくと、そのうち
|
||
|
||
メモリが足りません
|
||
|
||
というエラーメッセージが表示されて、起動できなくなります。これは、vz.defの
|
||
ファイルサイズが大きくなりすぎて、コードセグメント(64KB)内の空きエリアに
|
||
読み込めなくなってしまったためです。この場合は、vz.defの不用なコメントを削って
|
||
ファイルサイズを小さくするか、マクロをいくつかのファイルに分け、「* E その他」
|
||
の1番にファイル名を記述して、読み込むようにしてください。
|
||
|
||
また、同じような状況で、エラーとはならずに起動するが、メニューの一部が欠けて
|
||
しまう等の不具合が発生する場合があります。こんな時は、マクロ定義部の適当な箇所
|
||
に、
|
||
* M マクロ
|
||
|
||
という1行を挿入してみて下さい。
|
||
※この項は、readme.doc「5.使用上の注意事項」にも記述されています。
|
||
|
||
■ 1つの大きなマクロを^K^で組み込む場合
|
||
1つの大きなマクロ(数字で始まる行から次の数字の行までのサイズ)を、^K^で
|
||
組み込むと、
|
||
|
||
ラインバッファがいっぱいです
|
||
|
||
というエラーメッセージが表示されて、組み込めない事があります。この様な場合は、
|
||
組み込めるようになるまで、「オプションBl」の値を増やしてください。
|
||
|
||
|
||
|
||
|
||
|
||
-----------------------------------------
|
||
2.追加マクロ集
|
||
-----------------------------------------
|
||
|
||
|
||
■ ワンキーセーブ
|
||
|
||
テキストが修正されていたらセーブします。[F10]等に割り当てておくと便利です。
|
||
---------------------------------------------------------------------
|
||
50 ^\ "ワンキーセーブ"
|
||
?. (mr==1)?{ #S #m }
|
||
---------------------------------------------------------------------
|
||
|
||
|
||
■ テキスト切り替え
|
||
|
||
編集テキストをワンキーで順次切り替えます。全画面の時は全テキストで、分割時
|
||
は、反対側のウィンドウを現テキスト以外のもので切り替えます。
|
||
---------------------------------------------------------------------
|
||
50 ^\ "テキスト切り替え"
|
||
?.
|
||
(wt)??{ &#T(wn+1) .}
|
||
(wc<3)?.
|
||
m=wn, #W n=wn+1,
|
||
(n==m)? n++,
|
||
(n>wc)? n=1,
|
||
(n==m)? n++,
|
||
&#T(n) #W
|
||
---------------------------------------------------------------------
|
||
|
||
|
||
■ 全角括弧の入力
|
||
|
||
カーソル位置に全角括弧のペアを入力します。続けてマクロキーを押すと、
|
||
複数の括弧が選択できます。
|
||
---------------------------------------------------------------------
|
||
50 ^\ "全角括弧入力"
|
||
?.
|
||
p="「」『』()【】《》",
|
||
&f(cd,p) n=r,
|
||
mi-,
|
||
(n>=0)?{
|
||
(n&1)?{ #s n--, }
|
||
(n<8)? p+=n*2+4, ; 8 = 括弧の種類*2-2
|
||
mi+,
|
||
}
|
||
&?("%4s",p) mi-, #s
|
||
---------------------------------------------------------------------
|
||
【注意事項】
|
||
・括弧の数を変える時は、コメントにあるように(n<8)の数値も変更して下さい。
|
||
|
||
|
||
■ 文字コード表示
|
||
|
||
カーソル位置の文字コードを、シフトJIS、JIS、JIS区点コードの3種類
|
||
で表示します。
|
||
---------------------------------------------------------------------
|
||
25 ^KJ "文字コード表示"
|
||
?. ep+,
|
||
:A (s)??{
|
||
ax=cd,
|
||
(ax<0)?{
|
||
&i("$(3C,80,14,61,72,02,2C,A2,D0,D4,05,21,1F,80,E4,7F,C3)")
|
||
a=(ax>>8-$20)*100+ax&$FF-32,
|
||
&m("文字コード: シフトJIS:%4xh JIS:%4xh クテン:%04d",cd,ax,a)
|
||
}?{
|
||
&m("文字コード: %02xh",ax)
|
||
}
|
||
}
|
||
&p (r!=#[)?{ &o(r) >A } ; [ESC]で終了
|
||
&m("") ep-,
|
||
---------------------------------------------------------------------
|
||
|
||
|
||
■ 表示行削除
|
||
|
||
VZで1行削除(^Y)を実行すると、改行から改行までの論理行が削除されます。
|
||
これを画面上の1行(表示行)単位にするのが次のマクロです。
|
||
---------------------------------------------------------------------
|
||
50 ^\ "表示行削除"
|
||
?. (mb)?{ #y .}
|
||
&s &x(0) #x #b #e mb=2, #y &d ek-,
|
||
---------------------------------------------------------------------
|
||
【注意事項】
|
||
・削除を行なうと、カーソルは常に画面の左端に移動します。
|
||
・ブロックペースト後のカーソル位置オプション「Ek」はリセットされます。
|
||
・カーソルが最下行にある時は、画面が1行スクロールします。
|
||
・マクロの実行キーを ^Y にする事もできます。この時、矩形ブロックマクロ
|
||
(block.def)も組み込んでいる場合は、次の部分を変更して下さい。
|
||
-----------------------------------------
|
||
62 ^KK \[F08] "矩形ブロック記憶"
|
||
m+, >01
|
||
1:
|
||
?. (mb != 4)?{ (m)? #k ? #y . }
|
||
↓ ~~
|
||
?. (mb != 4)?{ (m)? #k ? >50 . } ; 表示行削除のマクロ番号
|
||
-----------------------------------------
|
||
|
||
|
||
■ COBOL用TAB
|
||
|
||
TABキーで、7,12,63カラムまでスペースを挿入します。
|
||
---------------------------------------------------------------------
|
||
50 [TAB] "COBOL"
|
||
?.
|
||
(lx<6)?{ (6-lx){' '} . }
|
||
(lx<11)?{ (11-lx){' '} .}
|
||
(lx<62)?{ (62-lx){' '} .}
|
||
---------------------------------------------------------------------
|
||
|
||
|
||
■ 桁対応上書きモード
|
||
|
||
上書きモード(オーバーライト・モード)を、文字の大きさ単位で行なうように
|
||
します。マクロを実行すると、画面下に 《桁対応》 と表示され、桁対応上書きモード
|
||
となります。再度実行すると、画面下に 《文字対応》 と表示され、通常の文字対応
|
||
モードに戻ります。上書きモード/挿入モードは[INS]で切り換えて下さい。
|
||
---------------------------------------------------------------------
|
||
50 ^\ "桁対応上書きモード"
|
||
?.
|
||
(mm)?{ mm-, &m("文字対応") / }
|
||
mm+, &m("桁対応")
|
||
:A &p c=r, (s)? >N
|
||
(c>=$100)? >N
|
||
(mi && ct>1)? >B
|
||
:N &o(c) >A
|
||
:B &s
|
||
(cd==9)? >T ; TAB
|
||
k=ck,
|
||
&o(c)
|
||
(c>=$20 && k)?{ mi-, ' ' #s mi+, >C } ; 全角←半角
|
||
(c<$20 && k==0)?{ ; 半角←全角
|
||
(cd==9 && lx%ht)? >C
|
||
(ck)?{ ' ' #s >C }
|
||
(ct>1)? #g
|
||
}
|
||
:C #? >A
|
||
:T x=lx,
|
||
mi-, &o(c) mi+,
|
||
(x/ht!=lx/ht)?{ (lx%ht+1){ #g } }
|
||
>C
|
||
---------------------------------------------------------------------
|
||
|
||
|
||
■ タイムスタンプ
|
||
|
||
カーソル位置に、各種フォーマットで日付・時刻を入力します。お好きなフォーマッ
|
||
トを残して、それ以外の行は先頭に「;」を入れてコメントにして下さい。
|
||
(日付:D1,D2,D3、曜日:W1,W2、時刻:T1,T2)
|
||
---------------------------------------------------------------------
|
||
50 ^\ "タイムスタンプ"
|
||
ax=$2A00, &i($21)
|
||
y=cx, m=dx>>8, d=dx&31, a=ax&7,
|
||
ax=$2C00, &i($21)
|
||
h=cx>>8, i=cx&63, j=dx>>8,
|
||
|
||
y-=1900, ; 1990->90
|
||
&?("%d/%02d/%02d ",y,m,d) ; D1: 90/12/01
|
||
p="JanFebMarAprMayJunJulAugSepOctNovDec"+m*3-3, ; D2:
|
||
&?("%d.%3s.'%d ",d,p,y) ; D2: 1.Nov.'90
|
||
p="SunMonTueWedThuFriSat"+a*3, ; W1:
|
||
&?("(%3s) ",p) ; W1: (Sat)
|
||
n='0', ; D3:
|
||
&?("9%c年%c%c月%c%c日 ", n+y%10,
|
||
(n+m/10)*(m>9), n+m%10,
|
||
(n+d/10)*(d>9), n+d%10
|
||
) ; D3: 90年12月1日
|
||
p="日月火水木金土"+a*2, ; W2:
|
||
&?("(%2s) ",p) ; W2: (土)
|
||
&?("%02d:%02d:%02d ",h,i,j) ; T1: 12:34:56
|
||
&?("%d:%02d %c.m. ",h%12,i,'a'+(h/12)*15) ; T2: 12:34 p.m.
|
||
---------------------------------------------------------------------
|
||
【注意事項】
|
||
・D3フォーマットは、VZのVer1.56以降でないと使用できません。というのは、
|
||
このマクロでは%cに渡す値がゼロの時は、何も出力しない必要があるのですが、
|
||
Ver1.55以前では、マクロの実行時エラーとなってしまうためです。
|
||
|
||
|
||
■ 指定桁折/連結
|
||
|
||
tool.defの「指定桁折」マクロに、以下の機能を追加したものです。
|
||
・ブロックモードでは、ブロック内のみ処理。
|
||
・「桁折位置」でゼロを入力すると、改行を削除してベタ書きに戻す。
|
||
・禁則処理をする/しないの指定。(2ヵ所の「;」を削除)
|
||
・画面表示を抑止して、代りに処理中の行の行番号を表示。
|
||
---------------------------------------------------------------------
|
||
71 [ESC]Y "指定桁折/連結"
|
||
?. (yy)?? yy=70,
|
||
&g("桁折位置($yy),0=連結")
|
||
(r==-1)?.
|
||
(r>=0)? yy=r,
|
||
b="‘“(〔[{〈《「『【([{「",
|
||
e="’”)〕]}〉》」』】、。,.?!!),.?]}」",
|
||
f=" 。.?】", ; 連結する場合の行末文字
|
||
; (yy)?{ &a("禁則処理をします")
|
||
; (r<0)?. (r)?? b=e="", }
|
||
mi[, ei[, mi-, ei+, #M &s
|
||
(mb)?{ p=cp, #B (cp>p)?{ p=cp, #B } }
|
||
:A &k (r==$1B)? >Z ; [ESC]が押されたら中断
|
||
(mb)?{ (cp>=p)? >Z }
|
||
&m("Line:%d",ln)
|
||
(yy)?? >D
|
||
&x(yy)
|
||
(ct)?? >Z
|
||
(ct<2)? { #x >A }
|
||
:B #s &f(cd,b) (r>=0)? >B
|
||
:C #d &f(cd,e) (r>=0)? >C
|
||
(ct>1)?{ #m p+=2, }? #d >A
|
||
|
||
:D (ct)?? >Z
|
||
(ck)??{ #x >A }
|
||
:E #> #s &f(cd,f) (r>=0)?{ #d #d >D }
|
||
#d #g (ct<3)?{ #m >D } p-=2, >A
|
||
|
||
:Z (mb)? #b
|
||
ei], mi], #U &d
|
||
---------------------------------------------------------------------
|
||
【注意事項】
|
||
・半角文字で始まる行は、連結しません。
|
||
・桁折した文章を別の桁数で折り直したい場合は、いったん連結してから、再度桁折り
|
||
して下さい。
|
||
・テキストバッファのサイズ(64KB)を越えるような大きなテキストでブロック
|
||
指定すると、正常にブロック範囲を処理できない場合があります。
|
||
|
||
|
||
■ アウトラインプロセッサ
|
||
|
||
#、##で始まる見出し行を元に、アウトラインファイル(OL)を作成し、
|
||
以下の操作が可能です。
|
||
・見出し行の抽出(OLの作成)
|
||
・見出し行から本文へのジャンプ(OLジャンプ)
|
||
・見出し行のカット&ペーストを本文へ反映(OLカット&ペースト)
|
||
|
||
【OLの作成】
|
||
・#または##を含む行(見出し行)を抽出し、OLファイルを開きます。
|
||
・OLファイル上でもう1度このマクロを実行すると、##を含む小見出しを
|
||
取り除き、#の大見出しだけにします。これ以降は何も起こりません。
|
||
・OLファイルは、[ESC]Cでクローズします。
|
||
※テキストの1行目には見出しを書かないで下さい。
|
||
|
||
【OLジャンプ】
|
||
・OLファイル上で[CR]を押すと、元ファイルのその行へジャンプします。
|
||
※^KWで元のテキストとOLファイルが切り替わる状態にしておいて下さい。
|
||
※すでに[CR]キーが、別のマクロに割り当てられている場合は、空いている別の
|
||
キーを割り当てて下さい。
|
||
|
||
【OLカット&ペースト】
|
||
・OLファイル上の見出し行を削除し、かつ元のテキストのその部分も削除
|
||
します。トグルになっており、もう1度実行すると、今度はカーソルのある
|
||
見出し行の上に、カットした見出しと元テキストをペーストします。
|
||
---------------------------------------------------------------------
|
||
50 [ESC]V "OLの作成"
|
||
?.
|
||
&s
|
||
(mr==254)? >C
|
||
wt[, &#Y(0)
|
||
#N "outline" #m #67
|
||
#F '#' #m ; #:大見出し
|
||
#W #^ #<
|
||
:A #c (r)??{ #k #W #i #x #W #> >A }
|
||
#U #W r], &#Y(r) >Z
|
||
|
||
:C #^ #<
|
||
#F "##" #m ; ##:小見出し
|
||
:D #c (r)??{ #y #e #> >D }
|
||
:Z #^ #< #@ &d
|
||
|
||
51 [CR] "OLジャンプ"
|
||
?.
|
||
(mr!=254)?{ #m. }
|
||
&01 #@ &d
|
||
|
||
52 [ESC]Z "OLカット&ペースト"
|
||
?.
|
||
(mr!=254)? .
|
||
&s
|
||
(fa)?{ &01 #i #W #i fa-, >Z }
|
||
&01 #b #W #y &01 #y #W fa+,
|
||
:Z #@ &d
|
||
|
||
01: (ct)?{ #> #b #< #G #W #c (r)? #r . }
|
||
#W #_
|
||
---------------------------------------------------------------------
|
||
|
||
《元ファイルの例》
|
||
-----------------------------------------
|
||
(※ 先頭行には、見出しを書かない)
|
||
#1 VZの過去
|
||
VZの過去はくらかった。
|
||
##1.1 マニアックなEZ
|
||
ダイヤモンドキーなんか大きらいだぁ。
|
||
##1.2 オタッキーなマクロ。
|
||
そういえばREXと呼んでいた頃もあったなぁ。
|
||
##1.3 バグとの死闘
|
||
バグの需要と供給。
|
||
|
||
#2 VZの現在
|
||
VZの現在はなお混沌。
|
||
##2.1 永遠のバグ
|
||
どうして取っても取っても無くならないの?
|
||
##2.2 サポートとは
|
||
ユーザーは、生かさず、殺さず。
|
||
|
||
#3 VZの未来
|
||
VZに未来はあるか?
|
||
##3.1 正規表現
|
||
そんなむずかしいの、わかんなーい。
|
||
##3.2 マウス対応
|
||
Turboにゃ負けられん。でもサイズが・・。
|
||
##3.3 Windowsへ
|
||
でも、所詮98じゃ、まともに動かんでしょう。
|
||
|
||
#4 付録
|
||
-----------------------------------------
|
||
|
||
《OLの作成(1回目)》
|
||
-----------------------------------------
|
||
#1 VZの過去
|
||
##1.1 マニアックなEZ
|
||
##1.2 オタッキーなマクロ。
|
||
##1.3 バグとの死闘
|
||
#2 VZの現在
|
||
##2.1 永遠のバグ
|
||
##2.2 サポートとは
|
||
#3 VZの未来
|
||
##3.1 正規表現
|
||
##3.2 マウス対応
|
||
##3.3 Windowsへ
|
||
#4 付録
|
||
-----------------------------------------
|
||
|
||
《OLの作成(2回目)》
|
||
-----------------------------------------
|
||
#1 VZの過去
|
||
#2 VZの現在
|
||
#3 VZの未来
|
||
#4 付録
|
||
-----------------------------------------
|
||
|
||
|
||
■ コンパイルとタグジャンプ
|
||
|
||
編集テキストをコンパイル(tcc)します。エラーが生じたら、ただちにconsole
|
||
ファイルを開きます。ここで、もう一度このマクロキーを押すと、エラー行をサーチ
|
||
して、該当ファイルにタグジャンプします。
|
||
---------------------------------------------------------------------
|
||
50 ^\ "コンパイル・タグジャンプ"
|
||
?.
|
||
(wn)?? >A
|
||
#S #m
|
||
#E "tcc " #P #m
|
||
(r)?{ #95 #U #< } .
|
||
:A #60 (r)?{ #x (r)?. >A }
|
||
#x a=wn, #O #e
|
||
#a #s (cd!='-')?{ #[ >A } ; 行番号がない場合はスキップ
|
||
#m (s)?{ #[ #[ >A }
|
||
---------------------------------------------------------------------
|
||
|
||
|
||
|
||
|
||
==============================================================================
|
||
End of macro.doc
|
||
==============================================================================
|
||
|