localgrep実行後の設定ダイアログについてNo.06159
さん 09/06/23 20:42
 
皆様こんばんは。

最近マクロを組み始めた新参者ですが、よろしくお願いします。

早速ですが、「localgrep」などのマクロで指定した検索オプションを
前回の検索オプションとさせたくない(ダイアログボックスに反映させ
たくない)のですがそのようなことは可能なのでしょうか?

具体的な動作は、以下の通りになります。

1.メニューから「GREP」を選択し検索オプションを設定し
  「GREP」を実行

2.下記マクロで「localgrep」を実行
      setcompatiblemode 0x000f;
      disabledraw;
      gofiletop;
      movetolineno 1, 1;
      localgrep "[検索キーワード]" ,nocasesense ,noregular,icon;
      clearupdated;
      replaceallfast ".*\\[検索キーワード\\]", "", regular;
      gofiletop;
      movetolineno 1, 1;

3.再度メニューから「GREP」を選択
  ↑
 この時に2で指定した検索オプションではなく、
 1で指定した検索オプションをデフォルト表示としたい。


すいませんが、どなたか教えて頂けますでしょうか?
よろしくお願いします。

[ ]
RE:06159 localgrep実行後の設定ダイアロNo.06161
h-tom さん 09/06/23 22:21
 

h-tom です。

>早速ですが、「localgrep」などのマクロで指定した検索オプションを
>前回の検索オプションとさせたくない(ダイアログボックスに反映させ
>たくない)のですがそのようなことは可能なのでしょうか?
可能ですよ。
マクロ実行時の最初に、検索・置換オプションを保存しておき、終了時に
戻せばいいです。

マクロヘルプ「目次− 検索系文− setsearch文」の下の方に、その方法が
書いてあります(「例」の所です。)

[ ]
RE:06159 localgrep実行後の設定ダイアロNo.06162
きいろいまふらあ さん 09/06/23 22:24
 
「き」さん、こんばんは。
きいろいまふらあと申します。

>早速ですが、「localgrep」などのマクロで指定した検索オプションを
>前回の検索オプションとさせたくない(ダイアログボックスに反映させ
>たくない)のですがそのようなことは可能なのでしょうか?

searchbuffer, searchoption, replacebufferを使って検索条件等を一時記憶し
ておき、マクロの処理が終わってからsetsearch, setreplaceを使って一時記憶
しておいた検索条件等を復元するとよいでしょう。

秀丸エディタ付属のマクロヘルプの「setreplace文」のところに使用例も載って
います。各関数の意味もマクロヘルプでご確認ください。

[ ]
RE:06159 localgrep実行後の設定ダイアロNo.06163
さん 09/06/24 22:02
 
h-tom様、 きいろいまふらあ様

お返事ありがとうございます。
おかげ様で無事できました。

あと、追加で質問なのですが、
GREPダイアログで使用する「検索するフォルダ」の内容を
取得/設定することは可能なのでしょうか?

ヘルプを調べてみたのですが、見つけられなくて...
どなたかお分かりになるようでしたら、教えて頂けますでしょうか?
よろしくお願いします。

[ ]
RE:06163 localgrep実行後の設定ダイアロNo.06164
きいろいまふらあ さん 09/06/24 22:30
 
きいろいまふらあです。

>GREPダイアログで使用する「検索するフォルダ」の内容を
>取得/設定することは可能なのでしょうか?

grepfilebuffer ですかね。
あまり使ったことないんですけど…。

マクロヘルプの「各種状態関連キーワード」の頁に載ってます。

[ ]
RE:06163 localgrep実行後の設定ダイアロNo.06165
Iranoan さん 09/06/24 22:40
 
 きさん今日は、Iranoan です。
> GREPダイアログで使用する「検索するフォルダ」の内容を
> 取得/設定することは可能なのでしょうか?
 現状では出来ないと思います。経緯は↓
http://hidemaruo.dip.jp:81/turukame/turukame_3/x0303752.html#3849

 要望する人が多ければ検討していただけると思うので、賛同者が増えた事は
嬉しい(^^)。

[ ]
RE:06164 localgrep実行後の設定ダイアロNo.06166
きいろいまふらあ さん 09/06/24 22:56
 
きいろいまふらあです。自己レスです。

grepfilebuffer は関係なかったです。失礼しました。
06165番のIranoanさんのコメントの通りかと思います。

[ ]
RE:06163 localgrep実行後の設定ダイアロNo.06167
さん 09/06/25 15:38
 
きいろいまふらあ様、Iranoan様

お返事ありがとうございます。

きいろいまふらあ様、
 grepfilebuffer関数
 実は、すでに使っています。
 これはこれで重宝します。
 ありがとうございました。

Iranoan様
 そうなんですね。
 ありがとうございました。

秀丸担当様 
 私は、マクロはCSVファイルの作成など定例的な変換作業に
 ダイアログは、階層化されたフォルダに分散しているソースファ
 イルなどを検索する時に使用しています。
 本関数があると毎回親フォルダを指定しなくて良いので非常に効率
 良く作業ができるのになぁと思っています。
 「対応してほしい」とまでは言いませんが、参考までに。
 

[ ]
RE:06167 localgrep実行後の設定ダイアロNo.06168
秀丸担当 さん 09/06/26 10:17
 

>秀丸担当様 
> 私は、マクロはCSVファイルの作成など定例的な変換作業に
> ダイアログは、階層化されたフォルダに分散しているソースファ
> イルなどを検索する時に使用しています。
> 本関数があると毎回親フォルダを指定しなくて良いので非常に効率
> 良く作業ができるのになぁと思っています。
> 「対応してほしい」とまでは言いませんが、参考までに。

おそらくですが、grepファイルヒストリを取得設定されたいというようなことで
はなく、検索オプション/検索バッファ等を戻すのと同じようにgrepダイアログ
の状態も戻されたいということでしょうか。

そうだとしたら、取得はきいろいまふらあさんの言われるようにgrepfilebuffer
キーワードで、設定はsetgrepfile文でできるのではないかと思います。

[ ]
RE:06168 localgrep実行後の設定ダイアロNo.06170
さん 09/06/26 15:49
 
秀丸担当様 
お返事ありがとうございます。

>おそらくですが、grepファイルヒストリを...
>grepダイアログの状態も...
まさにその通りで、grepダイアログの状態を戻したいだけなのです。

「grepfilebuffer」は、検索対象とするファイル種別の取得/設定は
できますが、検索対象とするフォルダの取得/設定ができません。
そのため、grepダイアログの状態を完全に戻すことができないのです。

[ ]
RE:06170 localgrep実行後の設定ダイアロNo.06171
秀丸担当 さん 09/06/26 16:40
 

>「grepfilebuffer」は、検索対象とするファイル種別の取得/設定は
>できますが、検索対象とするフォルダの取得/設定ができません。
>そのため、grepダイアログの状態を完全に戻すことができないのです。

grepダイアログは、最後にgrepしたフォルダを復元するようにはならない仕様で、
常に現在開いているファイルがあるフォルダになるようになっています。
setgrepfileでは、検索するファイル(ワイルドカード)を設定することしか意味
が無いと思います。

Iranoanさんの言われるように、検索するファイルのドロップダウンリストに現れ
る、grepファイルヒストリの取得設定ということであれば、意味があるかもしれ
ません。
V8.00では取得設定ではないですが、各種ヒストリを取らないようにする文を追加
する予定で、それができればヒストリの取得設定のための文の必要性はなくなる
かもしれないです。

[ ]
RE:06171 localgrep実行後の設定ダイアロNo.06172
さん 09/06/26 18:01
 
>ません。
>V8.00では...各種ヒストリを取らないようにする文を追加...
私的には、マクロでgrepした結果がダイアログに影響しないよう
にしたかっただけなので、その文があれば解決できると思います。
ありがとうございました。

[ ]