|
セイさん,こんにちは。
》ほ、ほしいです ;)
この種のマクロ,すでにどこかにあるのかも知れませんが,ここで話題になっ
たので作ってみました。
以下のマクロは,
画面表示のまま改行を入れて整形します。
範囲選択していれば選択範囲内,していなければカーソルのある行を対象にします。
タブをスペースに変換するオプションをつけています。問い合わせが煩わしい場合
は最初の行を
#tabspace = 0;
にしてください。
整形したテキストを他のウィンドウに貼り付ける場合は,貼り付け先の折り返し
幅が元のウィンドウより狭ければ,当然のことながら,うまくいきません。
//------ ReformX.mac ---------------------------------------//
#tabspace = 1; // 1:タブスペース変換の問い合わせをする 0:しない
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
#cb = getregnum( "CRBurasage" );
if( !#cb ) {
question "改行文字をぶら下げにします,いいですか?";
if( result == yes ) {
writeregnum "CRBurasage", 1;
envchanged;
} else {
closereg;
endmacro;
}
}
closereg;
if( selecting ) {
#topy = seltopy;
#endy = selendy;
escape;
moveto 0, #topy;
} else {
golinetop2;
#topy = y;
golineend2;
#endy = y + 1;
moveto 0, #topy;
}
disabledraw;
while( 1 ) {
if( code == 0x09 ) #tab = 1;
while( !return ) {
golineend;
right;
#x = x;//改行の次のカーソル位置
insertreturn;
//「先頭のタブ文字の後の折り返しをインデントしたように見せる」設定の場合
while( x < #x ) tab;
}
moveto 0, y + 1;
if( y >= #endy ) break;
}
if( #tab == 0 || #tabspace == 0 ) endmacro;
question "タブを半角スペースに変換しますか?";
if( result) {
moveto 0, #topy;
beginsel;
moveto 0, #endy;
tospace;
escape;
}
endmacro;
//------------------------------------------------------------//
では, (^^)/~
山紫水明
|
|