めずらしきこと。
今の所属に移ってから,自分でHTMLを書くよりも人の書いたHTMLを直すという機会が多くなった。Another HTML-lintで採点するとマイナス数百点なんてページを平気で公開していたりするので,直すのも一苦労である。いやむしろ一から自分で書いたほうがどれだけ楽だろうか。入れ子感覚がないので,開閉タグの関係がむちゃくちゃなのである。そんなとき自作の対応タグ検索マクロを使っていたのだが,閉じタグに属性をコメントするようにしたらずいぶん楽になった。
= TsuiTag v0.33 = by H_ear #if 0 対応するhtmlタグを探す シフト実行で対応する要素に付与されたclass/id属性値を閉じタグにコメント記入 #endif * mad for vz! 16 ^OT "T TsuiTag" ?. &s #M ;#0.32 起動位置マーク &Le(pu,wa+130) &#M(1) ;save mark #1 mp[, ps[, zh[-, rx[-, ew[+, ec[+, ly[, mb[-, n+, ;<n>est level k=ks&1, f-, ;#0.3 <f>属性フラグ (cd=='>')?#58 (cd!='<')?{ (-1){ #s (cd=='<'||lx<1)?{ (cd!='<')?>z } } ;表示行内のみ } #28 (cp.1=='/')?c-, ?c+, ;<c>ommand num #f ps=pr, #G (c && k)?&01 ;#0.3 copy id/class &> (f && k)?{ ;#0.3 write property lx[, #> &?("<!-- $$%s -->",t) &x(0]) ;#0.31 cursor } :z ; --- exit --- (n)?{ &#U(1) &m(19) } &Le(wa+130,pu) ;mark #1 (mb])?#B ky], ec], ew], rx], zh], ps], mp], &d #] . 0: ; --- 入れ子を数えて対応するタグを検索 --- ; ex. <UL>……<ul>……</UL>……</ul> ; n+= +1 +1 -1 -1 &o(#r+c) (r)??{ #28 &f(cp.-1,"</") (r==-1)?>^ (r)?{ (cp.-2!='<')?>^ } ;確かに終了タグか? n+=(c*2-1)*(1-r*2), (n>0)?>^ } 1: ; ---- id/class属性値を取得 ---- #0.30-0.33 mb-, &Sn(pr) (r){ #d } (cd!=' ')?. t=pn..-26, ;t: tmpbuf4(256)* #28 wa..19.2-, ;ラインバッファの文字列化 &Sc(t,cp,255) #54 ;カーソル以降を複写 &So(t,"class=") (r)?{ t=r+7, >p } &So(t,"id=") (r)?{ t=r+4, >p } .:p &SF(t,$22) (r)??. r.0-, f+, * [Variables] n <n>est level c <c>ommand num f <f>lag k <k>s&1 t <t>mpbuf4 (addr./passing) [Buffers] pr as ps (pa as ps) #0.32// tmpbuf4 copy lbuf pu as wa+130 [History] 1998/11/13 0.10 1st:VWXのOR検索版:VWXのバグで使い物にならなかった 2003/08/19 0.20 OR検索呪縛を解きネストに対応 2009/02/23 0.30 シフト実行時閉じタグ検索でid/class属性値をコメント書込み 2009/02/24 0.31 コメント書込み後のカーソル位置調整(不完全:行内桁位置を想定) 2009/02/24 0.32 起動位置をマークしておくことにした 2009/02/24 0.33 id/class属性値のメモリ上取得に伴いpaからtmpbuf4へ変更 [Notes] こんなふうにコメントを付ける <div class="hoge"> <div id="foo"> </div><!-- $foo --> </div><!-- $hoge -->