home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2001 December
/
VPR0112B.ISO
/
OLS
/
JED194V
/
JEDDOC.LZH
/
OUTLINET.MCR
< prev
next >
Wrap
Text File
|
1993-10-09
|
4KB
|
206 lines
;***************************************************************
; JED マクロサンプル
; 'OUTLINET.MCR'
; [アウトライン編集用マクロ]
; Ver 0.10 1993 初版
; 0.90 Oct.1993
;
; Written by H.Orikawa 1993
;
;***************************************************************
;[機能]
;
;【行の抽出】
; ・見出し行を抽出し、outlineファイルを開きます。
; ・outlineファイルは、[ESC]Cでクローズします。
;
;【outlineからのジャンプ】
; ・outlineファイル上で[CR]を押すと、元のテキストのその行へジャンプします。
;
;【カット&ペースト】
; ・outlineファイル上の見出し行を削除し、かつ元のテキストのその部分も削除
; します。トグルになっており、もう1度実行すると、今度はカーソルのある
; 見出し行の上に、カットした見出し/元テキストをペーストします。
?.
&b(1)
&m("アウトラインマクロ実行中")
o = 0, ;Outline ファイル番号(初期値)
t = wn, ;元ファイル番号記憶
fa-, ;カット&ペースト実行フラグをリセット
>N
;サブルーチン(高速化のため最初の方に配置)
91:
(ct != 2) ? { ;カーソル上の文字が全/半角空白、制御コード以外
#k ;行コピー
#W ;outlineファイルへ
#i ;行ペースト
#x ;一行下へ
#W ;元ファイルへ
}
.
:N
;****** メインループ
:A &p
c = r,
(c == #03) ? { ;[ESC]が押された
&11
>A
} ? {
(c == #m && wn == o) ? { &30 >A } ;[CR]
&o(c)
}
>A
;******
;[ESC]V "行の抽出"
20:
&s ;画面表示停止
#N ;新規ファイルオープン
#82 ;ファイル名称変更
#18 ;行頭まで削除
"outline" #m ;"outline"という名称に変更
o = wn, ;outlineファイル番号記憶
#W ;元ファイルへ
Y(4) ;ウィンドウ左右分割
#W ;outlineファイルへ
#65 ;ウィンドウ分割位置変更
(wx-25) { #d } #m ;右側(outline側)を25桁幅にする
#W #^ ;元ファイル文頭へ
l = 0, ;行番号初期化
&d
&m("【抽出行で[RET]】")
:L
&p
(r != #m) ? { &o(r) >L }
#< ;行頭へ
(ct < 2) ? >L
&m(" ")
&s
n-,
(ct == 2) ? {
:M (ct == 2) ? {
#d
n++,
>M
}
}
#^
:A
(l != ln) ? {
#< ;行頭へ
(n != 0) ? {
nn = n,
(nn) {
(ct != 2) ? >B
#d
}
}
(ct >= 2) ? {
&91
}
:B
l = ln, ;行番号記憶
#x ;一行下へ
>A
}
#U
#W #^ ;outlineファイル文頭へ
&d ;画面表示再開
;[CR] "outlineからのジャンプ"
30:
&s ;画面表示停止
#W ;隣のウィンドウに移り
T(t) ;元ファイルをオープン
#^ ;文頭へ
#W ;outlineファイルに戻る
&90
#W ;outlineファイルに戻る
&d ;画面表示再開
;[ESC]Z "カット&ペースト"
40:
&s ;画面表示停止
#W ;隣のウィンドウに移り
T(t) ;元ファイルをオープン
#W ;outlineファイルに戻る
yy = ly,
#_ (10){'?'} #m ;文末に「???...」+改行を挿入
#U ;元の位置にカーソル移動
(yy != 0) ? {
(yy) { #w }
}
#W ;元ファイルに移動
#_ #m (10){'?'} #m ;文末に改行+「???...」+改行を挿入
#^ ;文頭へ
#W ;outlineファイルに戻る
(fa) ? { ;ペースト時
#k ;outline上のペースト位置のカーソル行コピー
#W ;元ファイルに移動
#^ ;文頭へ
#F ;検索モードに入る
#i ;行挿入(上でコピーした行)
#m ;[RET](検索実行)
#03 ;[ESC](検索モードから抜ける)
#p ;ブロックペースト
#W ;outlineファイルに戻る
#i ;行挿入
fa-, ;フラグリセット
} ? {
&90
#W ;outlineファイルへ
#y ;対象行削除
&90 ;(削除行の次の行を元ファイル上で検索)
#b ;ブロックモード
#U ;(対象行に戻る)
#54 ;ブロック範囲のカット(クリップボードへの移動)
#W ;outlineファイルへ
fa+, ;フラグセット
}
yy = ly,
#_ (11){#h} #U ;outlineファイル上のマーク行を削除
(yy != 0) ? {
(yy) { #w }
}
#W ;元ファイルへ
#_ (12){#h} #U ;元ファイル上のマーク行を削除
#W ;outlineファイルへ
&d ;画面表示再開
;
;outlineファイル中のカーソル行の内容を元ファイル中から検索
;
90:
#k ;行コピー(outlineファイル上)
#W ;元ファイルに移動
#F ;検索モードに入る
#i ;行挿入(上でコピーした行)
#m ;[RET](検索実行)
#03 ;[ESC](検索モードから抜ける)
#<
.
;アウトラインコマンド解析([ESC]押下時)
11:
&m("[ESC]+V(作成),Z(切り貼り),C(閉じる)")
&p
&m(" ")
c = r & $DF, ;大文字変換
(c == 'V') ? { &20 . } ;[ESC]V
(c == 'Z' && wn == o) ? { &40 . } ;[ESC]Z
(c == 'C' && wn == o) ? { ;[ESC]C
#C ;ウィンドウのクローズ
(mr) ? { 'y' } ;変更有り
.
}
.