|
hoさん こんばんは。
》当初のイメージではEmEditorを使っていた影響で、、
》メニューの最初に「全角・半角変換」がきて、次のダイアログで種別を設定
》できると便利かなと思いました。
まったく同じようにしてダイアログを出すことも可能ですが,ちょっとこみ入っ
てきますので,次のようにしてみました。長くなってくると思わぬバグがあるかも
しれませんので,何かありましたら再度ご発言ください。
》何とか他のエディタを使わずに「秀丸」でやりくりできないかと
》日々思っている次第です。
多分エディタでできることは,秀丸でもできると思います。遠慮なくご質問くだ
さい。
では, (^^)/~
山紫水明
//--------- 文字置換.Mac -----------------------------------//
// 2000.7.22 Ver.1
// 2000.7.24 Ver.2
call Save_search;
if(!selecting){
disableinvert;
question "全文で置換しますか?";
if(!result) endmacro;
else selectall;
}
#bx=seltopx; #by=seltopy;
#ex=selendx; #ey=selendy;
Mojimenu:
menu "文 字 の 置 換",
"A) 英字大文字に",
"B) 英字小文字に",
" 《全角に変換》",
"C) 英 数 字",
"D) 英 字",
"E) 数 字",
"F) カタカナ",
" 《半角に変換》",
"G) 英 数 字",
"H) 英 字",
"I ) 数 字",
"J) カタカナ";
#r = result;
//endmacro;
if(#r > 3) {escape; moveto #ex, #ey;}
if(#r == 0) endmacro;
else if(#r == 1 ||#r == 4 || #r == 9) goto Mojimenu;
else if(#r == 2) toupper;
else if(#r == 3) tolower;
else if(#r == 5){$replace = "[A-Za-z0-9]+"; call ToZenkaku;}
else if(#r == 6){$replace = "[A-Za-z]+"; call ToZenkaku;}
else if(#r == 7){$replace = "[0-9]+"; call ToZenkaku;}
else if(#r == 8){$replace = "[ヲ-ン]+"; call ToZenkaku;}
else if(#r == 10){$replace = "[A-Za-z0-9]+"; call ToHankaku;}
else if(#r == 11){$replace = "[A-Za-z]+"; call ToHankaku;}
else if(#r == 12){$replace = "[0-9]+"; call ToHankaku;}
else if(#r == 13){$replace = "[ァ-ヶ]+"; call ToHankaku;}
escape;
redraw;
call Reset_search;
endmacro;
ToZenkaku:
while(1){
searchup $replace, regular;//
if(result == 0 || y < #by || (y == #by && x < #bx)) break;
tozenkakukata;
escape;
}
return;
ToHankaku:
while(1){
searchup $replace, regular;//
if(result == 0 || y < #by || (y == #by && x < #bx)) break;
tohankaku;
escape;
}
return;
Save_search: //検索状態を保存・変更
if (!searchmode) { // 検索状態を範囲選択に変更
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound",1;
#modechange = 1;
envchanged;
closereg;
}
return;
Reset_search: //検索状態を元に戻す
if (#modechange) {
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound",#s_mode;
envchanged;
closereg;
}
return;
//----------------------------------------------------------------//
|
|