2009-04-20

Everything search engine チョイ技

検索は超高速なのに、使い勝手がいまいちなEverythingをなんとかラクに使いこなそうと、無駄な抵抗を試みた結果をいくつかメモしておく。

なお、コマンドラインオプション、INIファイルの設定項目などについてはEverythingのSupportページVoidtools Wiki Command line options Ini を参考にさせてもらいました。

・指定したフォルダ以下を対象に検索を開始したい。
 (検索を開始するpathを指定して検索を実行したい)
コマンドラインオプション -path を指定して起動させる。

c:\hoge\Everything\Everything.exe -path "C:\Program Files"
c:\hoge\Everything\Everything.exe -path C:\Windows\system32

など、よく検索をかけるフォルダをランチャに登録しておけばよい。

検索速度が超高速なので、すべてのpathを対象にしてもよいのだけれど、絞り込み選択を少しでもラクにするには、pathを指定しておいた方が面倒でなくてよいと思った次第。

・指定した複数のフォルダ以下を対象に検索を開始したい。
コマンドラインオプション -config を使用すれば、読み込む設定ファイルINIを使い分ければ可能となる。

これにはすこしばかり手順を踏む必要がある。

オプションのでカスタマイズした設定は、デフォルトではEverything.iniに保存される。

オプションのタブExcludeでは(スクリーンショット左から4番目)、Exclude files and foldersをチェックすると、検索から除外あるいは含めたい要素(ファイル、フォルダ、フィルタ)が指定できる。

たとえば
C:\Program Filesの中から拡張子がtxt のファイルを除外したい場合、Add Filter*.txtを設定すればいい。


検索を実行したいフォルダを複数指定した場合は Add Folderで検索に含めたいフォルダを指定すればいい。(コマンドラインオプション -pathでは、複数のpathの指定を受け付けてくれない。とりあえずおいらの環境ではダメだった)
もちろん、逆に除外したいファイルやフォルダの指定もできる。

たとえば、My documents以下のフォルダのうち My Music My Picture My Video のみを含めたければ、Add Folder で上記ファイルのpathを指定すればよい。
IncludeExcludeの設定は下の画面のとおりであるが、どこまでを適応させるか以下のとおり選択肢が三つ用意されている。


独自のINIファイルを作るにはいくつか方法がある。
ひとつは、オプション画面からカスタマイズを行いApplyボタンを押して、いったんEverything.iniに保存する。その内容をそっくりコピーして別名のINIファイルを作成する。

ふたつめは、INIファイルを直接編集する方法。
INIファイル内の以下の項目をを編集すればよいのだが、けっこう面倒くさいので最初の方法でやったほうが確実だろう。

exclude_list_enabled
exclude_list
exclude_include_list
exclude_type_list
exclude_apply_to_list

自分の好みにカスタマイズしたINIファイルにそれぞれ名前をつけて作成し、検索用途ごとにINIファイルを使い分けられるようにする。

たとえば一番最初のスクリーンショットの例でいうと、
C:\Program Files の中から拡張子がtxt のファイルを除外した検索を行うINIファイルを txt.ini とした場合、

c:\hoge\Everything\Everything.exe -config c:\hoge\Everything\txt.ini

以上のようにコマンドラインオプションを指定してEverything本体を起動させればよい。

いちいちコマンドラインオプションを指定するのはめんどくさくてやってられないので、ランチャに登録して使用するようにするとよいだろう。
ちなみにShorter Launcherだとこんなかんじ。

&Program files exclude txt |c:\hoge\Everything\Everything.exe | -config txt.ini
Program files Include &exe |c:\hoge\Everything\Everything.exe | -config exe.ini
&Media exclude flv |c:\hoge\Everything\Everything.exe | -config flv.ini
&Image Include jpeg,bmp,png |c:\hoge\Everything\Everything.exe | -config jpeg.ini
&Music exclude qt |c:\hoge\Everything\Everything.exe | -config qt.ini


このうち上から2行目のように、Program filesのうち実行ファイルexeだけを表示させれば即席ランチャとしても使える。

これで、かゆいところに手の届く検索が可能となる・・・?かもしれない。
・検索対象テキストをあらかじめ入力してから検索を実行したい。

コマンドラインオプション -serach を指定して、fenrirのインスタントコマンドに登録して使うと便利である。

たとえば以下をインスタントコマンドに登録しておき、

es="c:\hoge\Everything\Everything.exe" -search %A

fenrirを起動後 「es ●●●」と探したいテキスト入力して実行すれば、検索したいテキスト●●●がEverything本体の入力欄に入力済みで検索が実行される。


なお、おいらの環境ではコマンドラインオプション -path -search は同時に使用できない。searchが優先されてしまい、すべてのpathを対象に検索が実行されてしまう。

おまけ
常駐させて使うのがいやだなぁと思う人向けに役に立つかもしれないTips

常駐使用が仕様なのであきらめるしかない。が、簡単に終了できるようにすることはできる。
頻繁に検索することなんてあるわけねえやぁ~という人向け。使い終わったそのたびに、終了させちゃえばいいのである。

具体的には、トレイアイコンをクリックするツール「TrayCommand」を使って以下のコマンドをshorter CraftLaunchなどのランチャに登録しておけば、わざわざマウスを使ってプログラムを終了する手間がはぶけてラクである。ちなみにコマンドはこんなかんじ。

c:\hoge\traycmd\traycmd.exe /R /K=DDDDDDE c:\hoge\Everything\Everything.exe 

2009-04-03

Everything search engine  いくつかのメモ書き

Everythingは常駐はするものの、インデックスファイルの更新の必要がなく、超高速な検索を実現してくれる。

試用 Everything search engineにすでに既述したように、FenrirやLocate32になじんだおいらとしては少しばかり物足りなさを感じざるを得なかった。なぜなら、検索したパスを複数の外部プログラムに自在に渡すことができないからでだった。

けれど超高速な検索は捨てがたい。

前回試してみた後にバージョンアップがあったようなので、それも含め、再度使用して、いくつか気づいた点をメモしてみた。

なお、最近Wikiができたらしく、詳細な説明(英語)がありマニュアルとして使える。

■コマンドラインオプションから以下のものを指定して検索できる

・検索をするファイル名
・検索するフォルダのpath
・検索したいテキスト
・検索をするファイル名

たとえばFenrirから、Fenrirで選択したファイル名で検索する場合はこんなかんじ。
Everything | "C:\Everything\Everything.exe" -filename "%P"
これはすでにFenrirでファイルが検索できてしまっているので、こんなことをすること事態まるで無意味。
むしろfenrirのインスタントコマンドを使うと便利だろう。こんなかんじ。
(コマンドを指定した後、ファイル名を入力して、EnterにてEverythingで検索を実行)
e="C:\Everything\Everything.exe" -filename %A
・検索するフォルダのpath

検索したいフォルダがあらかじめ決まっている場合、絞り込みが容易になる。
たとえばFenrirから、Fenrirで選択したフォルダのpath名以下のフォルダあるいはファイルを対象に、検索を実行する場合はこんなかんじ。検索したいものは開いたEverythingの検索窓に手動入力して行う。
Everything | "C:\Everything\Everything.exe" -path "%P"
インスタントコマンドを使うとこんなかんじ。(コマンド入力後、検索したものを入力し、EnterにてEverythingで検索を実行)
e="C:\Everything\Everything.exe" -path %A
・検索したいテキスト

探し出したいテキストを指定して、Everythingを起動、検索することができる。

Fenrirのインスタントコマンドを使うとこんなかんじ。(コマンド入力後、検索しいテキストを入力し、EnterにてEverythingで検索を実行)
e="C:\Everything\Everything.exe" -search %A

なお、おいらが試してみたかぎりでは、テキストとpathを同時に指定しての検索はできないようである。
おいらの方法が間違っているかあるいはほかの方法があるのかもしれない。

■外部プログラムにpathを渡して実行させる。

検索したファイルあるいはフォルダのpathを外部ファイルに渡して実行させるには、iniファイル内のopen_file_commandという項目を編集すればできるようになる。
デフォルトは以下のとおり。
open_file_command=$exec("%1")
これを、たとえばポチエスの関連付け版にpathを渡したければこんなかんじ。
open_file_command=$exec("C:\hoge\esExt5117\esExt5.exe" "%1")
検索したフォルダを好みのファイラで開くのはこんなかんじ。
open_folder_path_command=$exec("C:\Program Files\PPX\PPCW.EXE" /r "$parent(%1)")

この仕様だと、pathを渡せるプログラムがフォルダ名とファイル名、それぞれ一つずつしか指定できないのがちょっとイマイチかなぁと。まあ、ポチエスに渡すか、慣れたファイラから処理すればなんの問題もないんだけどね。

■便利な使い方 試案

Everythingの最大の長所は常に最新状態のデータベースで検索ができるということ。
そして、おいらにとっての最大の難点は、ひとたび検索結果が表示されてしまうと、その検索結果から下層のフォルダに潜ることが簡単にはできないということである。

具体的にどういうことかというと、マウスを使う場合は、右ボタンクリックでコンテキストメニューを表示させ、そこから再度Everythingで検索をかけ直し、新たな検索結果のウインドを表示させないと下層フォルダには潜れない。

キーボードからでは、Tabを押下して検索窓にカーソルを移動させ、下層フォルダ名を再入力し直して検索をかけ直さなければならない。

結果が表示されているのに、なんでこんなに手間をかけないと下層に潜れないん??? 移動がサクサクできずにもどかしくて仕方がない。いかに速度が超高速であっても、fenrirの快適な操作性に慣れすぎてしまっている身としては、つい二の足を踏んでしまう。

新規作成されるファイルはそう多くはなく、たいがい場所も決まっている。システムファイル内の必要なファイルを検索することなんて1年に数えるほどしかない。それだったら、最初から検索対象のフォルダを絞り込んで使えばいいじゃん。
ということで思いついた方法は以下のとおり。

方法その1
Everything側ではすべてのハードディスクを検索対象として設定しておく。(デフォルトの設定)そうした上でFenrirから検索したいフォルダを指定して検索する。

方法その2
Everything側では検索するフォルダを限定しておき、その上で検索する。
それ以外のフォルダを検索したければ、その都度地道に手動で検索対象フォルダを変更する。

その1の方法が現実的だろう。

なんにしてもインデックスファイルをいちいち更新しなくていいというのは捨てがたい魅力である。
外部プログラムを複数指定できるようになって、キーボード周りの使い勝手がよくなってくれればいいんだけどなぁ~と。
膨大にあるToDoリストやフォーラムをのぞいてみても argument とか External programs とかをどうするこうするなんて話題はまるであがっておらず、開発の方向性が違っているような印象を持ったので、期待しないほうがいいかもしれない。(作者の方によればファイル内テキスト検索はできるようにするつもりだけど、それをやるんだったら別のソフト使ってねと言っている)

しばらくは、fenrir ・ファイラ(ppx)・ポチエスを利用しつつ、併用しながら様子見というところだ。