|
タブの操作をマクロでする場合、範囲選択によってインデントになったりするので、
そのあたりが面倒そうでした。
目的の操作以外はデフォルトの動作(かそれに近い操作)となるようなマクロを作っ
てみました。
setcompatiblemode 0x100000;
if( multiselecting ) {
//デフォルトのタブ操作(複数選択)
insert "\t";
endmacro;
} else if(selecting){
if(rectselecting){
//デフォルトのタブ操作(BOX先頭もどき)
tomultiselect;
insert "\t";
} else {
//デフォルトのタブ操作(インデント)
indent;
}
endmacro;
}
//空白をスキップしてタブ挿入
call Label_SkipSpaceTab;
insert "\t";
endmacro;
Label_SkipSpaceTab:
##x2=column;
##y2=lineno;
while(##x2<linelen2){
$$c=gettext2(##x2,##y2,##x2+1,##y2);
if( $$c==" "||$$c=="\t" ){
##x2=##x2+1;
continue;
}
break;
}
if(##x2!=column){
moveto2 ##x2,##y2;
}
return;
|
|