マクロにおけるgrepの検索文字数についてNo.27822
YOSSY さん 10/03/16 17:23
 
No.27665にあるとおり、通常grepでは、1行ごとに2048文字目までしか検索せず、回
避手段としてNo.27672にgrepダイアログで「追加の条件」をONにして何らかの条件を
指定すると、grepは既存の方式とは違う方法で実行され、grep結果も2048文字を超え
た実際のテキストを結果に表示させることができるようになる方法もあります。
との記載がありますが、マクロにて記載時にgrepの検索文字列の2048文字制限を回避
する方法はありますでしょうか?

[ ]
RE:27822 マクロにおけるgrepの検索文字数No.27823
秀丸担当 さん 10/03/17 09:18
 

>No.27665にあるとおり、通常grepでは、1行ごとに2048文字目までしか検索せず、回
>避手段としてNo.27672にgrepダイアログで「追加の条件」をONにして何らかの条件を
>指定すると、grepは既存の方式とは違う方法で実行され、grep結果も2048文字を超え
>た実際のテキストを結果に表示させることができるようになる方法もあります。
>との記載がありますが、マクロにて記載時にgrepの検索文字列の2048文字制限を回避
>する方法はありますでしょうか?

念のため改めて書いておきますと、grepは2048文字以上でも検索はしています。
grep結果として出力される内容が切れているだけで、検索は2048文字以上でも行
われていて、ヒットした行は出力されます。
もしgrep結果そのものをテキストとして扱う場合は何らかの回避手段が必要だと
思います。
もしgrepしてタグジャンプ(標準でF10)するような使い方だとしたら、特に回
避しなくても使っていただけると思います。

以前のコメントにあるように、マクロで「追加の条件」の「#ifdef等の無効部分
を除く」と同じことをするとしたら、例えば以下のように grep文にmaskifdefを
書くとできると思います。

#f=searchoption;
$s=searchbuffer;
grep "xxxx", "*.txt", ".", maskifdef;
setsearch $s,#f;

[ ]
RE:27823 マクロにおけるgrepの検索文字数No.27826
YOSSY さん 10/03/17 17:07
 
>以前のコメントにあるように、マクロで「追加の条件」の「#ifdef等の無効部分
>を除く」と同じことをするとしたら、例えば以下のように grep文にmaskifdefを
>書くとできると思います。
>
>#f=searchoption;
>$s=searchbuffer;
>grep "xxxx", "*.txt", ".", maskifdef;
>setsearch $s,#f;
問題なくできました。maskifdefで「追加の条件」で書けたのですね。
調べ方が足りなかったようです。ありがとうございました。

[ ]