|
rako さん今日は、ひろです。
> 単語の一部を検索語に指定して、マクロを実行すると、強調表示されません。
大文字/小文字などのオプション判定をしていないようです。スレッドを
斜め読みしかしていませんので、ご希望のマクロと異なるかもしれませんが、
末尾のマクロでいかがでしょうか。ただし山紫水明さんのマクロと異な
り、「特に強調2」に検索語を設定します。
//-------------------------------------------------------------------
#handle_1 = hidemaruhandle(0);
$folder = directory2;
$file = basename;
$s = input( "検索語" );
localgrep $s;
#handle_g = hidemaruhandle(0);
changename $file + "_" + $s;
setactivehidemaru #handle_1;
openfile "/h";
#handle_2 = hidemaruhandle(0);
call GetLightChar,searchbuffer;
insert $$return + "\n";
saveas hidemarudir + "\\greptemp.hilight";
setactivehidemaru #handle_1;
closehidemaruforced #handle_2;
loadhilight "greptemp.hilight", 0;
config "y+";
setactivehidemaru #handle_g;
endmacro;
GetLightChar:
##option = 0;
$$string = searchbuffer;
if(searchoption&32){//あいまい検索
##option = 8;
call TOUPPER $$string;
$$string = $$return;
}
else{
if(searchoption&1)##option = ##option|32;
if(searchoption&2 == 0)##option = ##option|8;
if(searchoption&16)##option = ##option|16;
if(searchoption&2 == 0 && searchoption&16 == 0){
call TOUPPER $$string;
$$string = $$return;
}
}
##option = ##option|67;
return str(##option) + "," + $$string;
TOUPPER://小文字を大文字に変換 (半角文字のみ)
##char=0x61;
while(##char<=0x7A){
call ChangeCharacter $$1,char(##char),char(##char-0x20);
$$1=$$return;
##char=##char+1;
}return $$1;
ChangeCharacter://buff 中の文字列を置換
//$$1:buff
//$$2:検索文字列
//$$3:置換文字列
##change_char=strlen($$2);
$$string = "";
while(1){
##long = strlen($$1);
##number = strstr($$1, $$2);
if(##number == -1)break;
else{
$$string = $$string + leftstr($$1, ##number) + $$3;
$$1 = rightstr($$1, ##long - ##number - ##change_char);
}
}
return $$string + $$1;
|
|