======== Mi2.def Main macros ======== by miyata * Macro ;--- file --- 02 [F01] "Filer" ;90 &74 (s)?{ ;exit ;m.gann (wa|z)? #[ (s-2)? #[ ?{(wa)? #[} (s)?. &76 >80 } wn[, #O #m &Cr ;filer (wn-n]&&wc>1)? &22 >80 ; n:wn 02 \[ESC] "Console" ;83 (s)>?{>E >L * >L}. * #95 #U ky-, >Z ;last pos ;m.gann :L #[ >^ :E wn[, #X (wt<1&&n])? &22 ; n:wn :Z (s-2)? &76 >80 02 [ESC]E "Exit" ;43 ;[\]opp [@]filer q-, &19 &16 ; q:quit (wc==1)? #83 &18 &16 &20 >80 02 [ESC]Q "Quit" ;78 ;[\]opp [@]filer q+, &19 &> ; q:quit #] (mr-1)?>a &84 &a(37) (r>0)?{:a &76 &18} ;[Y] &> &20 >80 16: (s)?. &83 ? #W ;[\]opp 02 [ESC]A "Aexit" ;34 ;[\]leave1 [@]filer q-, &19 ; q:quit (k)?? #83 ;write prof a=wn, >17 02 [ESC]X "Aquit" ;346 ;[\]leave1 [@]filer q+, &19 ; q:quit &s c=wc, a=wn, #W n=wn, #W ; c:wc, a:wn, n:opp :A &#T(c) (k&&c==a||mr-1)?{(c--)?>A >>} ;[\]leave1 &84 &a(37) (r>0)?>> ;[Y] &#T(a) >22 ;[N]/[ESC] set back 17: &s c=wc, ;all close ; c:wc :A (k)?{(c==a)? c--, (c<0)?>B} ;[\]leave1 &#T(c) &> (c-->=0)?>A :B (k)?{&m("Leave") &20} &d 18: (q)? sr[-, ;close q:quit (wc<2&&wa-wo&&wb-wo)?{ ;only 1? mi=mp=eu=ew=rx=zh-, sq0==kp|g, ;(kp||g)?sq-, ?sq+, &j(0) (s-3)? &76 #] } #C (s>3)?{(q)? 'N' ? 'Y'} (q)? sr], ?{dd"np", &87} ;call nonpath 19: k1&ks, g8&ks, ; k:shift, g:grph 20: (mr-$80)? &j(-1) ? &j(0) ;view? fep off ;H¥ear 02 [ESC]N "Open" ;307 ;[\]rx- [^]r_o [@]view new (wf)??{&84 &m(6).} (mb)?{dd"file", nn22, >88} ;new [\]cur [^]vz [@]tmp k=ks, n=wn, ; k:ks, n:wn #O (k&16)? cm71, ;[^]r_o k[, n[, :P &p a=r, (s-1)?{&o(a) &Cr >>} ;key in ; a:char &42 ??{&44 >P} ;[«]fmenu.def (a-#m)?{&o(a) (a-#[)?>P >>} ;[ESC] &> #> ;[CR] :B (e=lx)??>D ; e:exist str #s (cd-'"')?>B ;["]open find ;tomo #d #l #h :D n[, e[, k[, #m &Cr ;&Cr k], e], (wn==n])?>80 ;not open? (k&8)? mr$80, ;[@]view (e)? &#Y(2) ;str? split (wc>1)? &22 ;set back (e)??>80 ;no str? rx=ff1&k<1, ;[\]rx- #F #u #x #u #m #@ ;set str c+, >57 ;don't >56 ; c:way 00: n], k], 22: #W &#T(n) #W ;set back text ;--- csr_h --- 03 ^S "_©" ;103 ;[\]blk ; &01 ;[\]block (ks&1)?{ en[-, (lx)?{(ct>1)? #s ? &x(lx-1) >z} #s &x(we-1) :z en],. } :S #s &02 (ct>2)?>S :C #s &02 (ct==2)?>C #d 04 ^D "¨_" ;89 ;[\]blk ; &01 ;[\]block (ks&1)?{ en[-, (lx+ck2)?>D 05 ^A "Knot©" ;60 ;[\]blk &01 ;[\]block a-, ;tomo :A t=ct, #s (ct-t&&a)?{#d (ct>2)?. #s} &02 a+, >A 06 ^F "Knot¨" ;44 ;[\]blk &01 ;[\]block :F t=ct, #d &02 ;tomo (ct-t&&ct>2)??>F 05 ^[<--] "Word©" ;19 ;[\]blk c-, >00 06 ^[-->] "Word¨" ;79 ;[\]blk c+, >> 00: &01 &o(#a+c) 01: (ks&1>mb&&s<1)? #b ;[\]to block 02: (lx+lh&&ct>1)??{&q &d} ;line top/end 05 @[<--] "Bun©" ;20 ;[\]blk [^]roll© nn50, >71 06 @[-->] "Bun¨" ;20 ;[\]blk [^]roll¨ nn51, >71 07 \[<--] "Edge©" ;25 &x(0) (mb)? #? 08 \[-->] "Edge¨" ;43 en[+, &x(we-1) en], ; (lx==we-1&&ck)? #s ; (mb||ct<2)? #? ;(mb||ct<2)?{#s (r)?? #d} (mb||ct<2)?{#s (r)?? #d} ;(mb||ct<2)? #? 07 ^QS "Win©" ;65 ?. ;m.gann (cm)??{&x(r*=0kx-lx)? #s } cm+, ;--- csr_v --- 09 ^E "ª" ;16 ;[\]opp c#e, >00 10 ^X "«" ;92 ;[\]opp c#x, >> 00: ?. (mb*ks&1)?{&s #B &o(c) #B &d >80} ;[\]&rangeª/« &83 ?{&81 &> >82} ;[\]&opp >> 00: &o(c) (r)? &o(#^+(c==#e)) ;#e->#_/#x->#^ 11 ^QR "Top" ;17 ;[\]opp [@]dual c#^, >01 12 ^QC "End" ;66 ;[\]opp [@]dual c#_, >> 01: (s)?. (ks&8)?{(2){&o(c) #W} >80} ;[@]dual &83 ? &81 &o(c) ?? >82 ;[\]&opp 13 \[UP] "Scrlª" ;19 c-, >00 14 \[DOWN] "Scrl«" ;129 c+, >> 00: >?{>E * >43}. * ;history &40 ?>44 >43 ;(#O)fmenu (else)history :E (wt)?{ ; (fx)?>29 ;comp? (fd)?{ ;dual? (ks&2)?{&30 &81 &30 >82} ;with csr &77 &81 &77 >82 } } :S &v(1) &78 (fb*ks&1&&wt<1)?>S ;high/super 15 ^[UP] "Oppª" ;18 ;[\]high c-, >00 16 ^[DOWN] "Opp«" ;119 ;[\]high c+, >> 00: >?{>E , >D *}. * #93 &77 #93. ;opp ;t.suzuki :D dd"complete", >87 ;complete.def :E (wt)?{&81 &> >82} ;opp >> 00: (ks&2)?{(ks&1)? &30 >30} ;with csr [\]high (ks&1)?>78 >77 ;opp [\]high 15 @[UP] "Compª" ;19 ;[\]num+ [^]code+ c-, >00 16 @[DOWN] "Comp«" ;91 ;[\]num- [^]code- c+, >> 00: (ks&17)?{dd"num", nn51-ks&1, >88} ;[\]num+/- [^]code+/- (s)?>43 ;history.def (wt)?>> ;comp >30 ;roll 29: dd"comp", nn12, >88 ;comp line 17 ^W "Roll«" ;26 ;[\]opp c#w, &85 c-, >00 18 ^Z "Rollª" ;131 ;[\]opp c#z, &85 c+, >> 00: (s)?. &83 ?{&81 &> >82} ;[\]&opp (mb)??>> #B (xc<0)?{(c)? #B.} ;top/end ;nago (c)?? #B 30: ky=ly, &77 ?. ;with csr (ly-ky)?. (c)?{(ly)? #e.} (ly> 19 \[RLDN] "Halfª" ;19 ;[\]half/opp ;\[PGUP] c-, >00 20 [RLUP] "Page«" ;15 ; [PGDN] c#c, &85 >> 20 \[RLUP] "Half«" ;148 ;[\]half/opp ;\[PGDN] c+, >> 00: k1&ks, >?{>31 . >D *}. * (k)? #93 (fl.21-1){&77} (k)? #93. ;pageª/« [\]opp :D #95 ;console we80, &Sf("K",px.) (k||r)? we250, ;[\]we250 #_ #> ky=wy-2, ;[RLDN]bottom (c)??{mp[+, (z)? #r ? #U mp], ky+,} ;[RLUP]cmd pos (cf. *Else 7) &d 21 ^R "Pageª" ;26 ;[\]half/opp c#r, &85 c-, >31 22 ^C "Page«" ;112 ;[\]half/opp c#c, &85 c+, >> 31: (s)?. ;pageª/« &83 ?{&81 &> >82} ;[\]&opp >> 31: (mp)?>57 ;[C]/[S]? (fc)??>79 ;jump r=wy-1, (cd&&ks&1&&wt<1||eh)? r/=2, ;[\]half (r){&77} ;scroll 21 @[RLDN] "Pgª" ;17 ;[\]opp [^]in ;@[PGUP] c-, >00 22 @[RLUP] "Pg«" ;137 ;[\]opp [^]in ;@[PGDN] c+, >> 00: ?. l=wy-1, #if 98 (ks&16)?{ ;[^]input rows #else (ks&4)?{ ;[^]input rows #endif (g=pg)?? pg=l, &g("Rows:[PG]$g [CR]$l") (r+1)??. pg=l, (r+2)? pg=r, } &83 r[, ? #W ;[\]&opp (pg)? l=pg, (l){&77} ;scroll (0])? #W >80 21 ^[RLDN] "Headª" ;19 ;[\]opp ;^[PGUP] c-, >00 22 ^[RLUP] "Head«" ;72 ;[\]opp ;^[PGDN] c+, >> 00: ?. lx[, &o(#<+c) &83 r[, ? #W ;[\]&opp mp[+, &57 mp], ;call search (0])? #W &x(0]) #] ;--- edit --- 23 [TAB] "Tab" ;44 c#21, &85 (mi)?{dd"tab",nn54,>88} ;tab stop #21 24 [DEL] "Del" ;40 c#g, &85 (ct>1) #g ?. ;ikuo &00 (ct==2)? #t 25 ^K] "Bs2" ;35 &> #s &> #h #d ;emmett 00: (lx+lh)?? &q 26 ^[BS] "Del©" ;27 ;[\]pick tol c#H, &85 nn60, >71 27 ^[DEL] "Del¨" ;27 ;[\]pick eol c#l, &85 nn61, >71 28 @[BS] "Del_©" ;21 ;[\]pick© nn62, >71 29 @[DEL] "Del¨_" ;21 ;[\]pick¨ [^]del_sp nn63, >71 ;--- cr key --- 30 ^[CR] "Ins^" ;77 ;[\]no ind k1&ks, >?{>E >L * >L}. * #< (cd>90)? #23 #m. ;to upper :L &40 ? cm71, #m >01 ;(#O)r_o :E c#n, &85 &00 >02 ;ins^ [\]no indent 31 \[CR] "Ins_" ;127 k+, >?{>E >L . >L}. :L (cm==45)?{#H #[ &q &81 #J #u #m >82} ;(#J)opp (cm==55)?{#m &q &81 &57 #@ #] >82} ;(#F)opp &40 #m ?>01. ;(#O)to end :E &> #> c#m, >02 ;ins_ 00: (mr-$80)?. #67 &q ;to edit #if 98 32 @[CR] "Full" ;180 ;[\]head+ [^]ins_ #else 32 @[END] "Full" #endif k1&ks, >?{>E >L . >F}. :L (lx)??{dd"user", nn47, >88} ;box up/dn :F &40 (o=r)? ro[+, #m (o)? ro], >> ;(#O)view_open :E #if 98 (ks&16)?{c#m, >02} ;[^]insCR [^\]no indent #else (ks&4)?{c#m, >02} ;[^]insCR [^\]no indent #endif &86 ;full.def 01: (s<1&&k)? #_ #] ;[\]to end 02: ei[=ej[=k!, mi[-, &o(c) mi],ei],ej], #] ;[\]no indent 40: (6900 35 ^QB "Strª" ;107 ;[\]rx- [^]zh- [@]ew+ c-, >> 00: ?. n+, ww-, ; n:not found rx=ff1&ks<1, ;[\]rx- #if 98 zh=hh16&ks<16, ;[^]zh- #else zh=hh4&ks<4, ;[^]zh- #endif (ew8&ks==8)? &54 ;[@]ew+ #F &j(-1) ;(fr) #F ?&j(-1) &41 (e||s-1)?{ew-, >54} ;[ESC] ; e:esc #m #@ #M >56 ;[CR] 36 ^Q] "Put_buf" ;31 ?. #61 #x &41 (e)?? #m ;e:esc 37 ^QA "Rep" ;300 ;[\]rx- [@]ew+ ?. rx1&ks<1, zh-, ;[\]rx- (ew8==ks&8)? &54 ;[@]ew+ mp[, (mb&2)? #G ;(mb==2)? ?{#F &j(-1) &> (e)?>Z #m} ; e:esc #56 #e #m vp.5-=1, an[=at, #e "$(9)" an], ;disp up ;tomo vp.5+=1, #x ; vp.5:win y pos &> (e)?? #m ; e:esc :Z mp], ew-, >54 41: &p a=r, (s-1)?{&o(a).} ;key in ; a:char &> ??>m ;[«]history (e#m-a)?{&o(a) (a-#[)?>^.} ;[ESC] ; e:esc #> (lx<1&&cm-56)?{:m &43 >^} ;[CR] 42: (a-#x||lx||ct-1) ;[«] & line top 43: dd"history", >45 ;history.def 44: dd"fmenu", >> ;fmenu.def 45: (s==1&&lx)? dd"fhist", &87 ;fhist.def 38 ^QL "Title«" ;20 ;[\]rx- c+, >00 39 ^QO "Titleª" ;84 ;[\]rx- c-, >> 00: ?. et+, zh=hh-, rx=ff1&ks<1, ;[\]rx- #F #[ #84 &Cr (r)?>54 >56 40 ^^ "Word«" ;19 ;[\]in/drct ;^2 c+, >00 41 ^\ "Wordª" ;254 ;[\]in/drct c-, >> 00: (ks&1)?{dd"key",nn43,i15,>88} ;[\]inpt/drct (s>1||s<1&&ct<2)?. (ww)??{&> r.2=fi,} ;1st? (s)?{fi-, #[ &63 (ww)? &64 &q >A} ;<2>extend rx=ff=x-, zh=hh+, ;x:next.def (mb&2)?{(xc>0)? #B #G >X} ;H (fi)?{#b &75 #G >X} ;direct? (ct<2)?>Z ww-, #b :A &75 #G #F #e ;next word :B &p &o(a=r) ; a:char (a==#[)?>Z ;[ESC] (a-#m)?>B ;[CR] :X #@ #M &56 ;search :Z &> fi=r.2, >54 00: ($). ;keep fi buf 42 ^Q^ "Inc«" ;18 c+, >00 43 ^Q\ "Incª" ;318 c-, >> 00: ?. ;nago zh=hh+, wl[=ww=ew-, ps[=pa, &59 #F ; y:ly :A &p (a=r)>!{ ; a:char (#[) >Z ;[ESC] (#m) >b ;[CR] (#e) (c-, >b) ;[ª] (#x) (c+, :b a-, >S) ;[«] } (a-#h)? ww++, ? ww--, ;[BS] &o(a) (ww<1)?{ww-, >A} :S #m (a)?{(c)? &02 ? &>} ; a>0:char / a-:up/dn/cr &57 ;search (n*a)?{(c)? &> ? &02} ; n:not found (ky>wy-5)?{(ky+5-wy){#z #e}} ;show char (a)??{&Sh(ps],pa) ps[=pa,} ;up/dn/cr:pa¨ps copy #F #e cm-, >A :Z #[ ps], wl], >54 01: #f (ly-y)?{#z #e} 0 ; y:ly (in &59) 02: #a (ly-y)?{#w #x} 0 54: rx=ff=zh=hh-, ;init opt 44 ^L [F05] "Find«" ;19 ;[\]opp c+, >57 45 ^O \[F05] "Findª" ;485 ;[\]opp c-, >57 56: cm-, >> ;1st search 57: (s)?{nn37, >70} ;search miel.com/view.exe m=cm, rx=ff, zh=hh, ;setting ; m:cm &83 k=r, #if 98 (o16&ks*k)? #W ;[\]&[^]& ; o:opp #else (o4&ks*k)? #W ;[\]&[^]& ; o:opp #endif &59 ;get csr pos(l,x) (mp[-1)?{ ;[P]/[S]marking &s #F #e #m #? &79 ? &60 ? &61 >Z } &x(0) &79 ? &84 #if 98 ?{av[4, #? av],} ;[C]rev line #else ?{av[$84, #? av],} ;[C]rev line #endif &x(x) :Z mp], (o)? #W &80 #] kk=k, ff=rx, hh=zh, rx=zh=cm-, ;ending 59: (y=ly)?? ky+, l=ln, x=lx, ;csr pos ; x:lx, y:ly, l:ln 60: &84 (m||k-kk)? n+, ;not found ; n:not found (m=m||n||l-ln||x-lx)?? &> ;last found? (m)? m"Not", ? m"Last", ; m:mes (o)? o"opp", &m("$"%s$" %s %s",ps,m,o) 0 61: n-, ;coloring ; n:not found ax$e908, bx'VW', &i($2f) e=cx, ;char count ;wing (ew)?{&Sn(ps) e=r,} ; e:length (mb)?>Z ;(B)? #if 98 &f(9,ps) (r<0&&rx&&we==wx)?{ ;notab/(B) etc. q2*(vp.9*80+vp.8), ;use attr(98) ;EPI dz[$a200, (e){q..=$c5, q+=2,} ; vp.8/9:csr x/y pos $c5:yellow dz], >Z } #endif ah[=ao, #b cp+=e, #B #? mb-, ah], ;use block ;mikome :Z &m("") 46 ^G "Get" ;197 ;[\]copy ?. ff=x-, zh=hh+, ; x:for next.def (mb)?{ww-, >00} (ct<2)?. (ww)?{ ;<2>extend (cm==59)?{&> &64 >A} ;#G (cm==49)?{&> &65 >A} ;#k } ww-, #b :A &75 >00 ;next word 63: &s #b (ww)?{(ww){#d}} ;extend block 64: &Sn(ps) &Sm(ps,ps+r+1,ps..-1) ;del history ;neko 65: dz[=kz, r=kp-2, r-=r..+1, 3(r) dz], ;del stack ;ikuo 47 ^QG "Get2" ;77 ;[\]copy ?. (ct<2)?. #b #> #B >> 00: (ks&1)?{ah[=ar, #B #B ah], &s #k ss-,} ;[\]copy ?{mp[, #G mp],} ;get 48 \[INS] "Paging" ;64 ?. c#@, &85 et+, (mp)??{#F #e #m #@} (cm-30)? mp2, #@ ;not<2> to[P] zh1==mp, ;--- mark/jump --- 50 \[F03] "Mark" ;13 >> 50 [F03] "Jump" ;30 ?{nn33, >70} ;dup nn20, >00 50 [ESC]0 "Ljump" ;48 ;[^0-9]key.def [\]opp i=r, ; i:num (i>9)?{dd"key", nn43, >88} nn21, >00 50 [ESC]J "Ajump" ;35 ;[\]opp nn22, >> 00: dd"jump", >88 51 ^JH "Home" ;196 ;[\]mark ?{nn50, >70} ;retdir #M &> ;ikuo (r.<1||ks&1)?{ ;[\]mark &Sp(r,"%s ->%lx",wa+$92,wa..63,wa..64). } &s (wt)? #W #O &> &?(r) #m &d &m("Home") 00: (3+$)."$[72]" ;fname buf 52 ^JJ "Postit" ;33 ;[\]mark m+, (pi.0-'a')? m-, &86 ; m-:ram, m+:hdd ;--- undo --- 53 ^U "Undel" ;54 ;[\]paste c#u, &85 (ks&1)?{((mg..-3)[, #u mg..-3=0],}? #u ;m.gann 53 ^[INS] "#umenu" ;32 ;[\]undel_menu c#u, &85 (ks&1)? &86 #u 54 ^QQ "Cancel" ;71 ;[\]sys_info &74 (s)?{':'.} ;*.* lh[, #54 (r])?{(r){#z}} &76 ds!, #] &80 (ks&1)?? ds!, ;[\]sys info 54 [ESC]U "Undo" ;52 (1320)?{nn55, >70} #54 ;undo? 54 [ESC][ "Pback" ;27 mi=mp-, #] &76 >80 ;--- block --- 56 [F06] "Block" ;73 ?{dd"qview", >87} ;qview.def ah=ay, l-, (cm-46)?{(mb) l=ln, #b ? #].} ; l:ln mb=nn-, &70 #] ;<2>kb.def ;mikome 57 \[F06] "ReBlk" ;39 ?{dd"esmiel", >87} ;esmiel.def mb+, #B #B &d ;ikuo 58 [F07] "Cut" ;32 ?{dd"vcd", >87} ;tree nn46, >70 59 [F08] "Copy" ;19 nn47, >70 ;large/small 60 [F09] "Pop" ;18 nn48, >70 ;name/ext 61 \[F09] "Paste" ;20 nn50, >70 62 [F10] "Tagjp" ;26 ?{nn49, >70} ;new/old &86 63 ^QI "Indent" ;21 nn54, >70 64 ^B "ExBlk" ;49 ;[\]© ?. (mb==1)?{#B.} x+, k1&ks, ;k1&ks&&cm==52, ; k:[\], x:next (mb)? #B ? #b &75 ;<2>extend 65 ^I @I "Pop" ;24 ;[\]paste ?. (ks&1)? #p ? #i 66 @[INS] "Stkmenu" ;26 ;[\]menu (ks&1)? &86 #p ;--- local --- ;297 70: dd"kb", (s)? dd"fl2", >88 ;kb.def/fl.def 71: dd"xedit", >88 ;xedit.def ;72: ;73: 74: (s%3)? &q ;s=0,3 only 75: &s dd"next", &87 #B &d ;next word 76: am[-, &m("") am], &d ;erase mes 77: &o(#w+c) (r) ;rl up/dn ; c:way 78: &o(#33+c) ;rl up/dn2 ; c:way 79: &o(#r+c) (r) ;pg up/dn ; c:way 80: (wt)?{&> >82} ;? opp u_l 81: du[+, #W ;opp u_l1 ;m.gann 82: av[-, #W av], du], ;opp u_l2 83: (r1&ks*wt) ;[\]& 84: an[^=8, &d &b(1) &w(1) an], &d #? ;flash ;nago 85: (mg..2-mg+16)?{ ;in mode? ;mikome r=mg..2-16, ;org .. r=mg..2-8, ((r..1)..0=='p&')?{ r..1+=2, (c) &q. ;c:cmd } } * ======== end of mi2.def ======== ;Used variables ;used macro (key assign) ; dd :filename (outlaw) ; nn :macro no.(outlaw) ; ff :kept rx opt (search) ;^QF/^QB/^^/^\/^L/^O/^G/[ESC]N ; hh :kept zh opt (search) ;^QF/^QB/^^/^\/^L/^O/^G ; kk :kept [\]& flag (search) ;^L/^O ; ww :kept str length (search) ;^^/^\/^G ; fb :high/super ;\[UP]/\[DOWN] ; fc :jump/smooth ;^R/^C ; fd :single/dual ;\[UP]/\[DOWN] ; fi :input/direct ;^^/^\ ; fx :comp off/on ;\[UP]/\[DOWN] ;Used variables in search macro ;^QF/^QB/^^/^\/^L/^O/^G/[ESC]N ; m :cm / last mes ; ff :kept rx opt ; k :[\]& ; o :[\]&&[^] / opp mes ; kk :kept k ([\]&) ; n :not found flag ; e :str length (bytes) ; ww :char count ; l :line no. ; x :csr x pos ; y :csr y pos