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を指定すればよい。
IncludeとExcludeの設定は下の画面のとおりであるが、どこまでを適応させるか以下のとおり選択肢が三つ用意されている。


独自の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)・ポチエスを利用しつつ、併用しながら様子見というところだ。


2009-03-26

再考 Firefox の画面を広く使う方法

以前このブログでもFirefoxの画面を広く使う方法という記事を書いたことがある。
当時はそれほど深く考えず、見た目だけにこだわって書いたものなので、今読み返すとひどく恥ずかしい。

それ以来、ちょっとは成長したのかもしれないが、おいらなりのこだわりをもって、なるべく必要のないものを使わずに、Firefox の画面を最大限広く使う方法を再考してみた。

外観は全く同じではあるが、使い勝手は格段に向上したと思っている。

前置きが長くなったが、おいらなりのこだわりは以下のとおり。

その1 なるべく無駄なアドオンは使わない。

Firefox はアドオン天国で、その気になって探せば目的にあったアドオンをいくらでも見つけることができるといっても過言ではない。が、作者の方が皆違うため、コンフリクトの問題が多かったりする。できればそれは避けたい。

その2 画面には表示されなくとも、ショートカットキーやホットキーで必要な作業が支障なくできること。

ふだんはメニューバーやステータスバーから行っている作業をショートカットキーあるいはホットキーに振り返られること

その3 必要になったときには非表示にしたものを即表示できるようにすること。

userChrome.cssにカスタマイズを書き込んでしまうと、Firefoxを再起動しないと変更した設定が反映されない。そんなめんどうなことは絶対にしたくない。

その4 極力、マウスを使わない。

以上の4点をクリアしつつ、たどり着いた FirefoxのUIはこれ。(クリックで拡大)

とはいってもタイトルバーだけ。以前のブログ記事のものと同じ。
(画面ではタブは表示されていないが、画面を二つ以上開くと、タブが並んで表示され、その分表示域は狭くなる。)










ちなみに、すべてのものを表示させた初期の状態はこれ。(クリックで拡大)
 












比較のために左右並べたものはこれ。(クリックで拡大)














使ったアドオンは以下のとおり
・keyconfig 20080929
・functions for keyconfig 1.4.0 (なくとも可、あれば便利)
・Stylish 0.5.9
・Web Developer 1.1.6 (なくとも可)

使用したテーマ
・W3v8 1.8.20

その他に使ったソフト
・AutoHotkey(常駐)
・fenrir(非常駐 なくとも可)

手順は以下のとおり。

手順1
テーマをコンパクトなものに変更する。
テーマのカテゴリ分けで「コンパクト」となっているものから選ぶといいかもしれない。

手順2

Firefox本体に付属しているツールバーのカスタマイズで、必要のないものを片っ端から消し、自分の好みの配置にする。
検索バーさえ消してしまう。検索はFirefox本体のものは使わず、fenrirから直接やれば事足りるので不要。

ちなみに以下のものは非表示にする。

Navigation Toolbar
Bookmarks Toolbar
Web Developer Toolbar

手順3
手順2で消したバーで、必要な機能をホットキーで操作できるようにする。
それには常駐で使用しているAutoHotkeyを使う。

以下のようなスクリプトを書いて、ホットキーで表示非表示を切り替える。
なんのことはない。本体のアクセラレータキーをホットキーに置き換えただけ。
ステータスバーの表示・非表示
#IfWinActive,ahk_class MozillaUIWindowClass
$#b::
{send,!V
Send,B
}
この方法で、同様にNavigation Toolbar、Bookmarks Toolbarの必要な機能に
ホットキーを割り当てる。

Web Developerをインストールしてあれば、リファラのオンオフやユーザースタイルの編集などを割り当てておくと便利である。
ユーザースタイルの編集

#IfWinActive,ahk_class MozillaUIWindowClass
$#1::
{Send,!t
Send,w
Send,s
Send,a
}
return
ちなみにおいらが割り当ててるのは
リファラ、キャッシュ、ジャバスクリプト、cookies、ページの色の有効・無効、Web Developer Toolbarの表示・非表示、ユーザースタイルの編集、などである。

手順4
ブックマークについては、基本的にはfenrirにて呼び出す。(fenrirをなにがなんでも使わなければならないというわけではない。本体にはデフォルトでスマートロケーションバーという便利な機能もついているのでそれで代用しても問題ないと思う)
どうしても思い出せないものについては、Bookmarks Toolbarを上記の方法て表示させるか、補助的にStylishをインストールし、以下のスクリプトを導入する。(思い出せないのはどうにも仕方がないので、しぶしぶマウスを使うことにする)

・ブックマークバーを自動で非表示にする場合
Auto-Hide BookMarks Toolbar - Firefox 3.0 *FIXED*
これを使うと、非表示だったブックマークがマウスオーバーで表示されるようになる。
ステータスバーについても同様のことがにAuto-hide Statusbarなどでできる。

以下の項目についてはメニューバーを非表示にしてしまば関係なくなるのではしょっていいのだが、不必要なメニュー(たとえばHelpとかEditとか)を消してしまえる。消したメニューについてはStylishの管理画面でオンオフを簡単に切り替えることができ、さらに、変更した設定が即画面に反映され、再起動の必要がない。この点が、Stylishの最大の利点だと思う。それなので設定しておいても損はないと思う。

・メニューの特定アイテムを非表示にする場合
Remove Edit and Help menu

そのほかにも似たようなスクリプトがあるので、それらを自分用にカスタマイズして使えるようにする。*1
userstyles.orgのページでRemove、Hide、Auto などで検索をかけると様々なスクリプトがたくさんヒットする。
*1
日本語バージョンのFirefoxを使用している場合は、スクリプト内の「File」を日本語メニュー「ファイル」に置き換えないとうまくいかない。こちらの不要なメニューアイテムを非表示がとても参考になる

手順5
メニューバーを非表示にする。
こちらのブログのスクリプト (ツールバーなどを一時的に隠す)を利用させてもらい、Keyconfigを使ってショートカットキーを割り当て、ツールバーの表示・非表示を切り替えられるようにする。

こうするとアドレスバーも一緒に消えてしまう。ブラウザ中にアドレスバーが必要になった時には、デフォルトのショートカットキーCtrl+Lキーでダイアログを表示させることができる。

手順6
その他ブラウジングに必要となる機能をkeyconfigを使用してショートカットキーに割り当てる。たとえば、

・Webページの一つ上の階層に移動する
・Webページの一つ前あるいは後のページに移動する
・それぞれのタブを開くキーを割り当てる
・再起動、など。

なお、あわせて functions for keyconfig を導入すれば、わざわざスクリプトを割り当てなくとも、様々なキーの割り当てが可能になる。

さて、これで準備完了。
あれこれ面倒な設定をして画面をすっきりさせたわけであるが、果たして操作性はどうなったか?
それが問題である。

・検索
 fenrirから実行。これまでもFirefox本体の検索窓は使っていなかったので問題なし。
・アドレスバーを使ってのページ移動
 Ctrl+Lキーでアドレスバーのダイアログを表示させれば問題なし。
(安全性の点からは常時アドレスバーは表示させておいたほうが望ましいだろうと思うのではあるが)
・ステータスバーの表示・非表示
 Win+B に割り当て
・アドオン表示
 F12に割り当て
・オプションの表示
 Win+P に割り当て
・WebDeveloper オプションの表示
 Win+G に割り当て
・ツールバーの表示・表示
 Shift+\ に割り当て
・色彩の無効化
 Win+; に割り当て
・ユーザースタイルの編集
 Win+1 に割り当て
・Javascriptの有効・無効
 Win+2 に割り当て
・すべてのcookiesの有効・無効
 Win+3 に割り当て
・リファラの有効・無効
 Win+4 に割り当て
・上の階層に移動する
 Ctrl+Up Arrow
・前のページに移動
 Alt+Shift+P
・後のページに移動
 Alt+Shift+N
・タブの複写
 Shift+@
・再起動
 Alt+Shift+R    等々 以下略
この程度の機能をホットキーあるいはショートカットキーで操作できるようにしてあれば、おいらの場合困ることはない。というよりも、あんまりたくさん割り当ててもおいらの場合覚えきれないというのが本音。(最低限、デフォルトのショートカットキーを覚えていることが前提となるけれど)

各種の便利な拡張を使わないことで、設定は煩雑で面倒にはなるけれど、あれこれカスタマイズすることで、画面が広く使え、なおかつ操作性を落とすことなく快適なブラウジングを楽しむことができるようになる。
追記
今回タイトルバーは消していない。理由は以下ととおり。
Hide Chrome では最大化された状態でしかツールバーが表示にならない。
Hide Caption は他の
機能や設定との相性がよくない。(おいらの場合userChrome.cssで設定したものがきちんと反映されなかった。実験的なアドオンにあったものなのでそれはそれでそれなりのもののようだ)

まあタイトルバーまで消してしまうと間が抜けてしまうので。まあいいかということでやめた。