「grepの実行」で、「検索するフォルダ」No.26837
半魚 さん 09/07/24 17:39
 
  秀丸エディタを快適に活用させていただいています。ありがとうございます。

 grepの実行の際、「検索するフォルダ」には、現在アクティブになっているファイ
ルのカレントフォルダがデフォルトで示されます。これはこれで便利だと思います。
また、「サブフォルダも検索」という再帰的に検索ができるパラメータも便利です。
  私の場合、検索対象のフォルダ(サブフォルダも検索します)は決まっていて、そ
こに検索文字列を少しづつ変えながらgrepを掛ける、といった作業を行うことがよく
あります。タグジャンプして内容を確認し、期待した結果でなければ再度文字列を変
えて検索する、といった作業です。こういう作業をする場合、grep実行を開くたびに、
タグジャンプ先のファイル(サブディレクトリにあったりします)のフォルダがデフ
ォルトで「検索するフォルダ」になります。
  Alt+Dでフォルダを確認すれば良いだけの、たった一手間なのですが、少々煩わし
いことがあります。

  grepを実行する際、直近の検索フォルダをデフォルトで「検索するフォルダ」にす
る方法がありますでしょうか。
  あるいは、「検索するフォルダを固定する」といったチェックボックス(パラメー
タ)を追加していただけないでしょうか。というような質問・要望なのですが。ぶし
つけな書き様で恐縮致します。何かの際に、ご考慮いただければ幸いであります。


[ ]
RE:26837 「grepの実行」で、「検索するフNo.26838
秀まるお2 さん 09/07/24 17:52
 
 固定のフォルダで毎回grep実行したいなら、マクロのgrepdialog2関数を使う
のが一番便利だと思います。

 例えば、「e:\grepdir」というフォルダの"*.txt"というファイルを対象に毎
回grep実行したい場合なら、

 マクロの内容として、

   grepdialog2 "", "*.txt", "e:\\grepdir";

 のような1文だけのマクロを用意して、それを例えば「マクロ・マクロ登
録...」の所に登録したり、さらにはキー割り当てするなどして呼び出せばいい
です。

 そうすると、あとは検索文字列を入力するだけで一発でgrep実行出来ます。

 という作戦でどうでしょ?

 grepdialog2については、「マクロ・マクロヘルプ」の所の「キーワード」
ページに"grepdialog2"と入力すると詳しい説明が出てきます。

[ ]
RE:26838 「grepの実行」で、「検索するフNo.26839
秀まるお2 さん 09/07/24 17:58
 
>    grepdialog2 "", "*.txt", "e:\\grepdir";

 1つ注意点があります。

 マクロの文字列の中で「\」を指定する時は、「\\」と書かないとダメです。

 なので、例えば「c:\abc\xyz」というフォルダを指定する場合ならば、

    grepdialog2 "", "*.txt", "c:\\abc\\xyz";

 のようにしないとダメです。

 ここだけ注意すれば、あとは難しい所は無いと思います。

[ ]
RE:26838 「grepの実行」で、「検索するフNo.26840
半魚 さん 09/07/24 18:17
 
早速の、素早いご回答、本当にありがとうございます。

grepdialog2 は使ったことありませんでした。使い勝手ということを考えれば、私自
身の問題としては、そのマクロを書くマクロ、を書いてもいいですね。ちょっとやっ
てみます。

実は、学校で大学生に秀丸で文字列検索をさせるという授業をやっています。国文学
系の授業で、電子データをgrepで正規表現検索させています。学生は一様にパソコン
には四苦八苦しますが、これまで冊子体の辞書や書籍類を使ってきたのと比べ、その
機能とスピードに驚嘆してくれ、教えるこちらまで鼻が高こうございます。そして、
段々乗ってきて操作もなれていきます。

  ただ、その中で、ちょっとだけ不満が出るとすれば、この「検索するフォルダ」の
部分なのです。実際、私自身も自分で使っていて、間違えたりしますから、正規表現
初心者の学生にはなおさらなのだろうと思います。

  最終的な要望としては、「検索するフォルダを固定する」のチェックボックスでは
ありますが、これはいつかいずれご考慮いただくということでお願いします。
 この他、検索ファイル、フォルダのスタックなど、ほんとうによく出来ていると思
います。また、別ファイルを参照しての「あいまい検索」のカスタム1なども素晴ら
しいと思います。かつてDOS時代にYgrepというツールがありましたが、その32bit版
がない現在、最も優れたgrep機能を秀丸が持っていると考えます。

素早いご回答ありがとうございました。今後ともよろしくお願いいたします。


[ ]
RE:26840 「grepの実行」で、「検索するフNo.26841
秀まるお2 さん 09/07/24 20:26
 
 マクロでやる以外の方法としては、例えば「grepの実行」っていうアイコンを
デスクトップに作る、という方法もあると思います。

 秀丸エディタ起動用のショートカットをデスクトップに1つ作成して、そこの
「リンク先」の所に、例えば

 "c:\program files\hidemaru\hidemaru.exe" /d "c:\folder" /g

 のように指定しておけば、そのアイコンをダブルクリックするだけでいきなり
grepが実行出来ます。

 さらにはそのショートカットの「ショートカットキー」に、例えばCtrl+Alt+G
とか割り当てておくと、いつでもどこでも、そのキーを押すだけでgrepが実行出
来て便利、という使い方も出来ると思います。

[ ]
RE:26841 「grepの実行」で、「検索するフNo.26858
半魚 さん 09/07/28 20:32
 
  様々な対策、ありがとうございました。

実際の検索場面では、対象フォルダは、必ずしも完全固定ではなく、たとえば、
c:\data
c:\data\waka
c:\data\youkyoku
c:\data\jisho\iwanami
c:\data\jisho\meiji

などと言った感じで、大きくgrepしたり、サブディレクトリのみを指定したり、そん
な使い方になります。

  マクロを少しみましたら、getpathhist  という関数があるのですね。これを使え
ば、最後のフォルダが指定される……ような気がします(実際には違うようですが)。
が、一から指定しなおすよりは楽です。
$dirs = getpathhist(0);
grepdialog2 "", grepfilebuffer, $dirs, regular, subdir,fuzzy;

なによりも驚いたのが、grepfilebuffer という変数があることです。grepdirbuffer
 もあれば解決するのですが;-)。しかし、それを付けるなら、やはり「前回のフォル
ダを検索する」のチェックボックスを付けるのと、たぶん、ほぼ同じ手間でしょうか。

いずれにしても、ご丁寧な回答に感謝申し上げます。ありがとうございました。

[ ]