説明: 前に作った tabtab.mac と tabset.mac を1つのマクロにまとめたものです。 マクロ登録が1つで済む代わりに、使用時の動作が2ストロークになります。 文字を入力する位置を、行の頭からひっこめて揃えたい場合があります。 たとえば、 このようにです。あるいは 前に文字があっても このようにしたい場合に、このマクロを使うと便 利です。 ひっこめたい位置、つまり、上で言うと『たとえば』の『た』にカーソルを置 き、tab.mac を実行します。「Z」を押すと、tab.mac にこの位置が記録され ます。その後、tab.mac を実行して「A」か「Enter」を押すと、カーソル位置 からこの位置までが、半角空白で埋められます。キーに割り付けておくと、手 早く使うことができます。同様に、tab.mac を実行して「Q」を押すと、カー ソル位置からタブ位置までが「.」で埋められます。目次などを書くときに便 利。(キー操作はタイトルバーに表示されます。) タブ位置を何個でも記憶できるように改良しました。記憶させたタブ位置を消 去するには、tab.mac を実行して「X」を押してください。すべて消去されま す。タブを1つだけ消去するには、その位置にカーソルを置いて tab.mac を 実行して「C」を押してください。 注: tab.mac を秀丸の下の "\macro" ディレクトリに置いてあるものとして書 いてあります。 ディレクトリが違うときは、4行めを $f=hidemarudir+"\\tab.mac"; などに書 き直してください。 最初の2行は、けっして内容を書き換えたり、行を増やしたり減らしたりしな いでください。 ============================= cut below this line ============================= // TAB.MAC by nyan #n[0]=0; // DO NOT EDIT THE ABOVE LINES. THESE ARE MACHINE-CREATED! $mac=hidemarudir+"\\macro\\tab.mac"; if(!existfile($mac)) {message "File Not Found: "+$mac; endmacro;} #k=inputchar("A=Tab; Q=Dots; Z=Set Tab; C=Clear Tab; X=Clear All Tabs"); if(#k=='A' || #k=='a' || #k==0x0d) goto MOVETOTAB; if(#k=='Q' || #k=='q') goto DOTSTOTAB; else if(#k=='Z' || #k=='z') goto SETNEWTAB; else if(#k=='C' || #k=='c') goto CLEARTAB; else if(#k=='X' || #k=='x') goto CLEARALLTABS; else endmacro; MOVETOTAB: while(1) {if(#n[#i]==0) endmacro; else if(#n[#i]>x) break; #i=#i+1;} #len=#n[#i]-x; while(#len) {$s=$s+" "; #len=#len-1;} insert $s; endmacro; DOTSTOTAB: while(1) {if(#n[#i]==0) endmacro; else if(#n[#i]>x) break; #i=#i+1;} #len=#n[#i]-x; while(#len) {$s=$s+"."; #len=#len-1;} insert $s; endmacro; CLEARALLTABS: if (filename!=$mac) {if(findhidemaru($mac)==-1) openfile "/h "+$mac; else setactivehidemaru findhidemaru($mac); } movetolineno 1,2; selectline; delete; insert "#n[0]=0;\n"; goto SaveMacro; SETNEWTAB: if(x==0) endmacro; #a=x; if (filename!=$mac) {if(findhidemaru($mac)==-1) openfile "/h "+$mac; else setactivehidemaru findhidemaru($mac); } movetolineno 1,2; selectline; delete; while(#n[#i]>0) {#i=#i+1;} #max=#i+1; #n[#max-1]=#a; #i=#max-2; while(#i>=0) { if(#a<#n[#i]) {#n[#i+1]=#n[#i]; #n[#i]=#a;} #i=#i-1; } #i=0; while(#i<#max) { $t=$t+"#n["+str(#i)+"]="+str(#n[#i])+";"; #i=#i+1; } $t=$t+"#n["+str(#i)+"]=0;\n"; insert $t; goto SaveMacro; CLEARTAB: if(x==0) endmacro; #a=x; if (filename!=$mac) {if(findhidemaru($mac)==-1) openfile "/h "+$mac; else setactivehidemaru findhidemaru($mac); } movetolineno 1,2; selectline; delete; while(#n[#i]>0) { if(#n[#i]!=#a) {$t=$t+"#n["+str(#j)+"]="+str(#n[#i])+";"; #j=#j+1;} #i=#i+1; } $t=$t+"#n["+str(#i)+"]=0;\n"; insert $t; goto SaveMacro; SaveMacro: save; prevhidemaru; closehidemaru findhidemaru($mac); endmacro; ============================= cut above this line =============================