grep検索するフォルダを固定できないでしNo.19127
うえむ さん 05/04/06 14:37
 
いつもサポートありがとうございます。
表題の件ですが、階層をいくつか持つ中で度々grepの必要が出てまいりました。他デ
ィレクトリからincludeされているものが多く、その場合それらのルートフォルダを
指定してgrepしています。その度に検索するフォルダをカレントフォルダから移動さ
せてやらないと処理ができないのですが、簡略化のため該当フォルダを固定的にでき
るような設定はできないでしょうか?よろしくお願いします。

[ ]
RE:19127 grep検索するフォルダを固定できNo.19128
ENCODINGSHIFTJIS さん 05/04/06 15:49
 
1)
GREP する形によっては、別の方法もあります。
関数のプロトタイプなどでは、ctagsファイルの作成でGREP結果を保存し
ダイレクトタグジャンプで参照する方式がとれます。
GREPの用法はどんなものでしょう。

2)
GREP操作をマクロ化して、マクロをキーで起動もありです
 grep文は、パラメタを指定してgrepを実行します。
例:
 grep "#include","*.cpp;*.c",".",regular;
マクロヘルプより。

[ ]
RE:19128 grep検索するフォルダを固定できNo.19129
うえむ さん 05/04/06 16:53
 
なるほどそういう手がありました>マクロ作成。早速作ってみて期待通りのことがで
きました。gowordtop/endを使ってカーソル位置の単語をgrepの文字列に放り込みま
した。


ただ、grepの“検索するフォルダ”に(カレントフォルダ)という項目を作成いただ
き、常に最終指定した項目が有効になるようになるといいなと秀丸エディタのバージ
ョンアップに期待したいところです。お願いします。


なお、いただいている1番の項目は、関数以外もいろいろと検索するので私には適し
ませんでした。


ENCODINGSHIFTJISさんありがとうございました。


>1)
>GREP する形によっては、別の方法もあります。
>関数のプロトタイプなどでは、ctagsファイルの作成でGREP結果を保存し
>ダイレクトタグジャンプで参照する方式がとれます。
>GREPの用法はどんなものでしょう。
>
>2)
>GREP操作をマクロ化して、マクロをキーで起動もありです
> grep文は、パラメタを指定してgrepを実行します。
>例:
> grep "#include","*.cpp;*.c",".",regular;
>マクロヘルプより。

[ ]
RE:19129 grep検索するフォルダを固定できNo.19130
秀丸担当 さん 05/04/06 17:47
 

>ただ、grepの“検索するフォルダ”に(カレントフォルダ)という項目を作成いただ
>き、常に最終指定した項目が有効になるようになるといいなと秀丸エディタのバージ
>ョンアップに期待したいところです。お願いします。

grepダイアログを出した直後は、「検索するフォルダ」はカレントフォルダにな
っていると思います。
最初の要望とは内容が異なる要望のように思えますが、これは、どういう意味で
しょうか。

[ ]
RE:19130 grep検索するフォルダを固定できNo.19131
うえむ さん 05/04/06 18:03
 
分かりにくくすみません。このようなことです。

「検索するファイル」には(現在の内容)という項目がありますのでそれを参考に要望
させていただきました。こちらは最後に選択した項目が次からも保存されていると思
います。

明示的に(カレントフォルダ)を選択した場合は次からもカレントフォルダが検索対
象フォルダ、自分が他のフォルダを選択して検索した場合は次からも同じフォルダ。
つまり、最後に指定したフォルダが次からも検索対象になればありがたく、私にとっ
てですが、使い勝手がよくなります。そのため、(カレントフォルダ)という選択肢
が「検索するフォルダ」のダイアログ中に設定できないでしょうか?という意味合い
です。

お願いいたします。

>grepダイアログを出した直後は、「検索するフォルダ」はカレントフォルダにな
>っていると思います。
>最初の要望とは内容が異なる要望のように思えますが、これは、どういう意味で
>しょうか。

[ ]
RE:19131 grep検索するフォルダを固定できNo.19132
秀丸担当 さん 05/04/06 18:35
 

>明示的に(カレントフォルダ)を選択した場合は次からもカレントフォルダが検索対
>象フォルダ、自分が他のフォルダを選択して検索した場合は次からも同じフォルダ。
>つまり、最後に指定したフォルダが次からも検索対象になればありがたく、私にとっ
>てですが、使い勝手がよくなります。そのため、(カレントフォルダ)という選択肢
>が「検索するフォルダ」のダイアログ中に設定できないでしょうか?という意味合い
>です。

なるほど、理解できました。
最後に指定したフォルダを選択したいための、カレントフォルダということでし
たか。
ネタとして参考にさせていただきます。

[ ]
RE:19131 grep検索するフォルダを固定できNo.19133
Iranoan さん 05/04/07 00:25
 
 うえむさん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> 最後に指定したフォルダが次からも検索対象になればありがたく、私にとっ
> てですが、使い勝手がよくなります。
 それならば、「検索するフォルダ」に履歴が残っているので、そこから選ぶ
のが手っ取り早いかと。

[ ]
RE:19133 grep検索するフォルダを固定できNo.19134
sshg さん 05/04/07 02:05
 
私もうえむさんの意見に賛成です。
「検索するフォルダ」が常にカレントフォルダになってしまうっていうのに
すごく不便を感じているので、最後に指定したフォルダを維持するっていう
モードがあれば嬉しいです。


>  それならば、「検索するフォルダ」に履歴が残っているので、そこから選ぶ
> のが手っ取り早いかと。

実際grepを起動するたびに毎回これをやってて、正直ちょっとうんざりしています。
1つのフォルダに全部のソースを置いている場合ならともかく、多少なりとも
フォルダを分けている場合には、カレントフォルダからじゃなくフォルダ固定の
ほうが都合がいい場合が多いと思うのですが。。


あともう一つ、「検索する文字列」も、最後に指定した文字列のまま固定に
するっていうモードがあれば嬉しいです。いまはカーソル位置付近の文字列を
必ず拾ってきてしまうと思いますので。
文字列を反転選択している場合のみ、「検索する文字列」にその文字列を拾って
くるっていうのはどうでしょうか?

[ ]
RE:19133 grep検索するフォルダを固定できNo.19135
うえむ さん 05/04/07 08:46
 
Iranoanさん、おはようございます。

> それならば、「検索するフォルダ」に履歴が残っているので、そこから選ぶ
>のが手っ取り早いかと。
おっしゃる機能があるのは理解しており、現在使用しています。が、その“選ぶ”こ
と事態が煩わしいため、このスレッドを立てさせていただいておりますことをご理解
下さい。それでは。

[ ]
RE:19134 grep検索するフォルダを固定できNo.19136
うえむ さん 05/04/07 08:56
 
sshgさん、おはようございます。

>実際grepを起動するたびに毎回これをやってて、正直ちょっとうんざりしています。
全く同じ感想です。

>あともう一つ、「検索する文字列」も、最後に指定した文字列のまま固定に
>するっていうモードがあれば嬉しいです。
これは現状で“最後に指定した文字列のまま”になっていると思いますよ。前の検索
内容は条件がそのまま残っており、例えば私は“下候補”をF5キーに割当てています
が、次々と検索する場合はF5キーを押すだけにしています。この内容は秀丸を閉じて
も憶えていますのでキー割り当てがお勧めです。
メニューから“検索”を選んだり、“Ctrl+F”などでは新規の検索が始まるため、ss
hgさんの意図する検索(最後に指定した文字列を記憶)にはならないと思いますし、
また、できたとしても2アクション必要になりますね。

[ ]
RE:19136 grep検索するフォルダを固定できNo.19137
Iranoan さん 05/04/07 12:03
 
 うえむさん、sshg さん今日は、Iranoan です。
> >実際grepを起動するたびに毎回これをやってて、正直ちょっとうんざりしています。
> 全く同じ感想です。
 失礼、もうされているんですね。
 そうすると、やはりマクロでやるのが良いと思います。

> 1つのフォルダに全部のソースを置いている場合ならともかく、多少なりとも
> フォルダを分けている場合には、カレントフォルダからじゃなくフォルダ固定の
> ほうが都合がいい場合が多いと思うのですが。。
 それこそ、フォルダ固定ではやりにくいと思います。
 ##親フォルダが統一されていれば、仰る仕様の方が使いやすいかもしれませ
んが。

[ ]
RE:19136 grep検索するフォルダを固定できNo.19138
sshg さん 05/04/07 18:05
 
>これは現状で“最後に指定した文字列のまま”になっていると思いますよ。
>前の検索内容は条件がそのまま残っており、例えば私は“下候補”をF5キーに
>割当てていますが、次々と検索する場合はF5キーを押すだけにしています。
>この内容は秀丸を閉じても憶えていますのでキー割り当てがお勧めです。

説明不足でしたらすみません。
私が2番目に書いた希望も、再度grepを実行した場合についてのことです。


>メニューから“検索”を選んだり、“Ctrl+F”などでは新規の検索が始まるため、
>sshgさんの意図する検索(最後に指定した文字列を記憶)にはならないと
>思いますし、また、できたとしても2アクション必要になりますね。

ですのでこれと同じような条件ですので、前回と同じ文字列で検索するには
履歴から選びなおさないといけないと思います。

開発者様、サポートをご検討いただければ嬉しいです。

[ ]
RE:19138 grep検索するフォルダを固定できNo.19139
秀丸担当 さん 05/04/07 18:44
 

>ですのでこれと同じような条件ですので、前回と同じ文字列で検索するには
>履歴から選びなおさないといけないと思います。

grepの件も、検索も、動作が変化すると困るという人もいると思うので、もしや
るとしたら動作環境で追加などということになると思います。
動作環境の肥大化も懸念されていることで慎重に考えたいと思います。

ちなみに検索の件はマクロで

 find2;

とすればほぼ望み通りかもしれません。

[ ]
RE:19138 grep検索するフォルダを固定できNo.19140
山紫水明 さん 05/04/07 22:42
 
 うえむさん,sshgさん,こんばんは。

 前回と同じフォルダ,検索語を初期値としたい場合,たとえば次のようなマク
ロで簡単なことはできるでしょう。検索条件などを指定する必要がある場合には
もう少し工夫が必要でしょう。

//-------------------------------------------------------
$inifile = macrodir + "\\grep.ini";
$folder = getinistr($inifile, "grep", "folder");
if( $folder == "" ) $folder = directory;
if( selecting ) $word = gettext( seltopx, seltopy, selendx, selendy );
else $word = getinistr($inifile, "grep", "word");
while( 1 ) {
    menu "&E Grep 実 行",
         "&F 対象フォルダ:" + $folder,
         "&S 検索語:" + $word;
    #r = result;
    if( #r == 1 ) break;
    else if( #r == 2 ) call SetFolder;
    else if( #r == 3 ) call SetWord;
    else endmacro;
}
grep $word, "*.*", $folder;
writeinistr $inifile,"grep","folder",$folder;
writeinistr $inifile,"grep","word",$word;
endmacro;

SetFolder:
$folder = input("対象フォルダ", $folder);
return;

SetWord:
$word = input("検索語", $word);
return;
//------------------------------------------------------//

     では, (^^)/~
                                        山紫水明(ユーザー)
                                        SANSHISUIMEI

[ ]
RE:19140 grep検索するフォルダを固定できNo.19141
sshg さん 05/04/08 01:28
 
わざわざマクロを作っていただいてありがとうございます。
このマクロをもう少し拡張すれば、自分の希望のものが出来そうです。

さっそくこれをベースにして、自分なりにアレンジしてみたいと思います。
どうもありがとうございました。

[ ]
RE:19135 grep検索するフォルダを固定できNo.19142
ENCODINGSHIFTJIS さん 05/04/08 10:13
 
CTAGS 系統のソフトでは ソース群を HTML化して、全ての名前などを
ハイパーリンク表示やXREF(クロスリファレンス、相互参照表)を発生
するタイプがありますが。
巨大ソースを読む場合は、そのつどGREPは体力が必要にみえます。
は、ともかく。

3)
秀丸起動時オプション
と プログラム実行のコマンド履歴
と 秀丸マクロ
を組み合わせる。

メニュー>その他>
プログラム実行 > Hidemaru.exe  /n  /dフォルダ名 /xマクロ名
マクロ内容は、(クリップボード / 1つ前の秀丸の選択範囲)の内容でGREPする。
フォルダの記憶はプログラム実行のダイアログが持っている形です。

考えただけですが

[ ]
RE:19140 grep検索するフォルダを固定できNo.20239
うえむ さん 05/10/24 14:28
 
山紫水明さん、sshgさんこんにちは。

長いことかかりましたが自分なりに使いやすいマクロを完成しましたので、ライブラ
リにアップしました。

秀まるおのホームページ > ライブラリ > 秀丸エディタのマクロライブラリ

「検索ディレクトリ固定のGREP」です。

以上です。

> うえむさん,sshgさん,こんばんは。
>
> 前回と同じフォルダ,検索語を初期値としたい場合,たとえば次のようなマク
>ロで簡単なことはできるでしょう。検索条件などを指定する必要がある場合には
>もう少し工夫が必要でしょう。
>
>//-------------------------------------------------------
>$inifile = macrodir + "\\grep.ini";
>$folder = getinistr($inifile, "grep", "folder");
>if( $folder == "" ) $folder = directory;
>if( selecting ) $word = gettext( seltopx, seltopy, selendx, selendy );
>else $word = getinistr($inifile, "grep", "word");
>while( 1 ) {
>    menu "&E Grep 実 行",
>         "&F 対象フォルダ:" + $folder,
>         "&S 検索語:" + $word;
>    #r = result;
>    if( #r == 1 ) break;
>    else if( #r == 2 ) call SetFolder;
>    else if( #r == 3 ) call SetWord;
>    else endmacro;
>}
>grep $word, "*.*", $folder;
>writeinistr $inifile,"grep","folder",$folder;
>writeinistr $inifile,"grep","word",$word;
>endmacro;
>
>SetFolder:
>$folder = input("対象フォルダ", $folder);
>return;
>
>SetWord:
>$word = input("検索語", $word);
>return;
>//------------------------------------------------------//
>
>     では, (^^)/~
>                                        山紫水明(ユーザー)
>                                        SANSHISUIMEI

[ ]