grep文について質問No.09455
izoka さん 21/06/08 20:43
 
grep文(grepdialog2) についてなのですが
カレントディレクトリに"前回のフォルダ"を指定したいのですが
前回のフォルダを知る方法はありますでしょうか?
動作環境>前回のフォルダを使う が有効でのgrepコマンド実行と同じ事をしたいです。

またこの動作環境>前回のフォルダを使う が有効かどうかを知る方法はありますで
しょうか?

[ ]
RE:09455 grep文について質問No.09456
秀丸担当 さん 21/06/09 09:18
 

grepの前回のフォルダは、grepファイルヒストリの先頭の項目で、ファイル名部分を
除いた部分に相当します。
getfilehist等、他のヒストリ取得はあるのに対して、getgrepfilehistはありません
でした。
あったらいいので追加を検討します。

「前回のフォルダ」のオプションに相当するキーワード等は無いです。
なんとかするとしたら、レジストリを見て判断するしかなく、以下の場所の値で判断
できます。
openreg "CURRENTUSER",@"Software\Hidemaruo\Hidemaru\Env";
#f = (getregnum("MemoryWord") & 0x0020) != 0;
closereg;
message str(#f);

[ ]
RE:09456 grep文について質問No.09457
秀丸担当 さん 21/06/10 11:10
 

getgrepfilehistをやろうとしてみたのですが、内部的にちょっとややこしいのと、
仕様が一転二転しかねないので、V8.98では見送っていずれ検討したいと思います。

詳しいことを書くと、grepダイアログが新タイプと旧タイプがあって、新タイプはフ
ォルダ別なのに対して、旧タイプはフォルダとワイルドカードがセットになったヒス
トリです。
でも情報としては共通で、旧タイプの情報を元に最適となるように整理して、新タイ
プのヒストリ(「検索するフォルダ」のドロップダウン)を出しています。
実際の情報として存在するのは旧タイプのほうで、いまのところgetgrepfilehistを
やるとしたら、旧タイプとなることを考えています。

その代わりといっては何ですが、マクロヘルプには記載されていなくて仕様にはなっ
ていないのですが、GREP;という文もあります。
OPEN;やSAVEAS;と同様に、ダイアログを出す文なのですが、マクロとして成立してい
なくて、GREP;をした時点でマクロは中断されてしまいます。
事前に検索オプション等を設定してからGREP;を呼ぶだけであれば、一応なんとか使
えるシーンはあると思います。

[ ]
RE:09457 grep文について質問No.09458
izoka さん 21/06/11 13:58
 
>getgrepfilehistをやろうとしてみたのですが、内部的にちょっとややこしいのと、
>仕様が一転二転しかねないので、V8.98では見送っていずれ検討したいと思います。
>
>詳しいことを書くと、grepダイアログが新タイプと旧タイプがあって、新タイプは
>フォルダ別なのに対して、旧タイプはフォルダとワイルドカードがセットになった
>ヒストリです。
>でも情報としては共通で、旧タイプの情報を元に最適となるように整理して、新タ
>イプのヒストリ(「検索するフォルダ」のドロップダウン)を出しています。
>実際の情報として存在するのは旧タイプのほうで、いまのところgetgrepfilehistを
>やるとしたら、旧タイプとなることを考えています。

getgrepfilehistの検討を頂き、ありがとうございます。
その上で実装がややこしいとの事で、ちょっと考えたのですが
私が必要としている物は直接的にはgetgrepfilehistではなく(getgrepfilehistも勿
論あれば嬉しいです)
(今回は)単に、前回の検索フォルダ情報になります。

そこで
>grepの前回のフォルダは、grepファイルヒストリの先頭の項目で、ファイル名部分
>を除いた部分に相当します。
の内容を、grepfilebufferのように、grepfolderbuffer(仮)のようなもので呼び出せ
るように出来ないでしょうか?
これであれば、現在内部的に存在する引数のような気がするのですが。


>その代わりといっては何ですが、マクロヘルプには記載されていなくて仕様にはな
>っていないのですが、GREP;という文もあります。
>OPEN;やSAVEAS;と同様に、ダイアログを出す文なのですが、マクロとして成立して
>いなくて、GREP;をした時点でマクロは中断されてしまいます。
>事前に検索オプション等を設定してからGREP;を呼ぶだけであれば、一応なんとか使
>えるシーンはあると思います。

情報ありがとうございます。
確かに使えるシーンは有るように思います。


>「前回のフォルダ」のオプションに相当するキーワード等は無いです。
>なんとかするとしたら、レジストリを見て判断するしかなく、以下の場所の値で判
>断できます。
>openreg "CURRENTUSER",@"Software\Hidemaruo\Hidemaru\Env";
>#f = (getregnum("MemoryWord") & 0x0020) != 0;
>closereg;
>message str(#f);

情報ありがとうございます。
ただレジストリを参照して挙動するマクロだと秀丸エディタの内部仕様変更で
互換がなくなることも想像できますので(別スレッドでも話題に出ておりましたが)
一先ず使用は見送っておくことにします。

[ ]
RE:09458 grep文について質問No.09459
izoka さん 21/06/11 14:04
 
上記投稿してからちょと思ったのですが

getgrepfilehist ←新タイプ
getgrepfilehist1 ←旧タイプ

または

getgrepfilehist のオプションとして
getgrepfilehist 0(または指定なし) で新タイプ
getgrepfilehist 1 としたら旧タイプ

のように両方扱いありきでもいいのかもしれないと思いました。

[ ]
RE:09459 grep文について質問No.09460
秀丸担当 さん 21/06/11 16:42
 

grepfolderbufferのようなものは、表面的にそういうものがあるように見せかけても
いいです。
(実際はヒストリとしての一番目のディレクトリ部分ですが)

「前回のフォルダを使う」がOFFのときは見せかけ上は、""を返すといいと思います
そうすると、「前回のフォルダを使う」がON/OFFの判別としても使え、grep文のカレ
ントフォルダのパラーメータにもそのまま渡せるキーワードになります。
そういうのでよければV8.98で追加しようと思います。

ヒストリの取得は、パラメータで方式を選択できてもいいかもしれません。setgrepf
olderhistもセットで作ることを考えるとまたいろいろあるのですが、ご意見参考に
します。

[ ]
RE:09460 grep文について質問No.09461
izoka さん 21/06/11 17:57
 
>
>grepfolderbufferのようなものは、表面的にそういうものがあるように見せかけて
>もいいです。
>(実際はヒストリとしての一番目のディレクトリ部分ですが)
>
>「前回のフォルダを使う」がOFFのときは見せかけ上は、""を返すといいと思います
>そうすると、「前回のフォルダを使う」がON/OFFの判別としても使え、grep文のカ
>レントフォルダのパラーメータにもそのまま渡せるキーワードになります。
>そういうのでよければV8.98で追加しようと思います。

はい、その様な仕様で結構ですのでお願いしたいです。
ご検討、ありがとうございます。

[ ]