grep結果を(現在の内容)でgrepNo.06314
jechabon さん 10/12/16 16:55
 
お世話になります。

grepの出力結果を(現在の内容)でgrepすると、関係の無いファイルの
タグ情報が付加されてしまいます。
回避できますか?

[ ]
RE:06314 grep結果を(現在の内容)でgrepNo.06317
秀丸担当 さん 10/12/16 17:16
 

>grepの出力結果を(現在の内容)でgrepすると、関係の無いファイルの
>タグ情報が付加されてしまいます。
>回避できますか?

grepの出力結果で、

filename.txt(123): 内容

となっているテキストで、(現在の内容)でgrepすると、その結果も同じく

filename.txt(123): 内容

と出て、この「filename.txt(123): 」の部分が不要ということでしたら、通常
のgrep結果を処理するのと同じような方法で、例えば正規表現で「^(.+): 」を
何もなしに置換してまとめて削除するなどの方法を使っていただくしかないと思
います。

除去するのをマクロにするとしたら、以下のようなマクロにするといいかもしれ
ません。

disabledraw;
#searchoptionOrg = searchoption;
$searchbufferOrg = searchbuffer;
$replacebufferOrg = replacebuffer;
replaceallfast "^(.+): ","", regular;
setsearch $searchbufferOrg, #searchoptionOrg;
setreplace $replacebufferOrg;

[ ]
RE:06317 grep結果を(現在の内容)でgrepNo.06318
jechabon さん 10/12/16 17:35
 
> 除去するのをマクロにするとしたら、以下のようなマクロにするといいかもしれ
> ません。

除去したい訳では無いです。
grep結果をgrepすると、grepとは無関係の直前のカレンドウィンドウの
ファイル名が付加されるようなので、とても違和感があります。
新規ファイルをgrepした場合はファイル名が非表示になるので、
grep結果をgrepした場合も、非表示にならないのかと思いました。

ファイル種別が"grep"の場合はタグ出力しないようなマクロを考えているの
ですが、タグ出力しないgrepオプションはありますか?

[ ]
RE:06318 grep結果を(現在の内容)でgrepNo.06319
秀丸担当 さん 10/12/16 17:47
 

>除去したい訳では無いです。
>grep結果をgrepすると、grepとは無関係の直前のカレンドウィンドウの
>ファイル名が付加されるようなので、とても違和感があります。
>新規ファイルをgrepした場合はファイル名が非表示になるので、
>grep結果をgrepした場合も、非表示にならないのかと思いました。

grep結果を現在の内容でgrepする場合は、結果の絞込みという使い方にもなると
思うので、ファイル名と行番号を引き継ぐのはそれなりの使い方はあるかもしれ
ません。
というか、そのために特別な処理をしていて、ファイル名と行番号は付けずに出
力していました。
除去することと出力しないことの違いがよくわからないのですが、もしかしたら、
grep結果をgrepしたとき、

grep結果ファイル.txt(123): grep元ファイル.txt(123): 内容

というように二重になっているということでしょうか。
そうだとしたら違和感はあると思います。
そういう動作になっているとしたら、それは通常の動作ではないと思います。
もしかしたらマクロでgrep処理していて、grep結果をファイルに保存したり、名
前を変更したりすると、そういうことにはなってしまうかもしれないです。
見当違いのコメントだとしたらすみません。

[ ]
RE:06319 grep結果を(現在の内容)でgrepNo.06320
jechabon さん 10/12/16 18:02
 
説明不足ですいません。

aaa.cのファイルを開いている時に、違うフォルダの"TEST\*.c"に対して
grepを行い、その結果に対してさらに(現在の内容)でgrep検索します。
すると下記のような出力になります。

aaa.c(1): TEST/bbb.c(123): 内容

しかし、aaa.c(1)のタグ情報とgrep結果は何の因果関係も無いので、
おかしいのではないかと思いました。
マクロを使用しなくてもこの現象は発生します。

[ ]
RE:06320 grep結果を(現在の内容)でgrepNo.06321
秀丸担当 さん 10/12/17 09:41
 

>しかし、aaa.c(1)のタグ情報とgrep結果は何の因果関係も無いので、
>おかしいのではないかと思いました。
>マクロを使用しなくてもこの現象は発生します。

そうでしたか。理由がわかりました。
grepの出力先を「単一」や「タブグループごと」にしていると、grep結果を元に
して同じウィンドウに出力していた関係で、そうなってしまっていました。
「自動」の場合は、おそらく期待されるような絞込みの動作になっていましたが、
「単一」の場合は確かにおかしかったです。
そういう場合でもできるようにまた次のβ版で修正させていただきます。

[ ]