|
>>そもそもどーいった処理をなさろうとしているんでしょうか?>haruさん
>ヒットした文字(ラベル以外の文字)を小文字にしたい。のですが、
その「ラベル」とは、秀丸マクロのラベルですか?
● 理屈。
検索を複数回に分けなければならない処理でも、
”検索文字列によっては”、強調表示を利用することで、
一回の検索で済む事があります。
一般的に述べると。
「パターン0 にも パターン1 にも パターン2 にもマッチしない文字列の処理」
では、パターン0 と パターン1 と パターン2 にマッチする hilight ファイル
を用意するみたいな感じです。
ただし、この方法は「素の置換」には適用できません。
以下を「一回の検索」というには疑義があります。
しかし、排除したいパターンが多ければ多いほど恩恵があります。
● 例。
(1)コメント/文字定数のカラー表示を「秀丸マクロ」にする。
# C言語, Java のラベルでも大丈夫なはず。Perl は不可。(^^;)
(2)ラベルを強調する。
##h = hidemaruhandle(0);
newfile;
// insert "17,^ *[A-Za-z_][0-9A-Za-z_]*:\n"; // 強調1、 正規表現
insert "21,^ *[A-Za-z_][0-9A-Za-z_]*:\n"; // 行強調1、正規表現
$$t = hidemarudir + "\\tmp.hilight";
saveas $$t, sjis;
##t = hidemaruhandle(0);
setactivehidemaru ##h;
closehidemaruforced ##t;
loadhilight $$t, 0;
if( ! hilightstate ) config "y+";
(3)検索するときに、ラベルでなくコメントでなく文字列でないか確かめる。
// ##label = 4;// 強調1、正規表現
##label = 6;// 行強調1、正規表現
searchdown "[A-Z]+", regular;
while( result ){
##cc = colorcode & 0x1f;
if( ##cc != ##label && ##cc != 4 && ##cc != 20 ) tolower;
escape;
moveto selendx, selendy;
finddown;
}
では。
# 秀丸の使用頻度激減中。(^^;)
|
|