IE5(やそれを利用したタブブラウザ)を利用していた頃からロケーション・バーで検索していたので、特に操作性が優れているわけでもない検索バーなどはまったく使う気になれずスマートキーワードしか使ってない。最近はロケーション・バーで履歴やブックマークの絞込みも可能なので、ますます重要度が上がった。このスマートキーワード機能自体に特に不満があるわけではないのだけど、キーワードは前に付けるのではなく後ろに付けるのが良いのじゃないかと、履歴やブックマークの絞込み機能が付いて以降は考えるようになった。「g foobar」じゃなくて「foobar g」というように。

上述の通り、今の多くのブラウザは履歴やブックマークをロケーション・バーから手軽に検索できるので、

という利用法が効率的だと思う。しかしこの場合、今のブラウザの実装だとスマートキーワードを利用するためにはHomeなどを押して一旦ロケーション・バーの先頭にカーソルを戻さなければならない。これが仮に最後の単語をキーワードとして認識するような実装だったとしたら、押しやすいSpaceを押し、続けてキーワードを入力するだけで良い。また単語を入力中にやっぱり別のサイトで検索したくなった……というような場合にも、後付けならスマートに検索するサイトを切り替えることができる。


で、もしかしたらFirefoxではkeyword.URLをうまくいじって、入力文字列をBookmarkletのように処理してやれば実現できるんじゃないかと考えた……が、keyword.URLでは指定されたURLの最後に入力文字列が付くだけみたいで、入力文字列を処理することができなかった。

スマートキーワード+Bookmarkletなら入力文字列を%sで受け取れるので、代わりにBookmarkletで誤魔化してみる。

Bookmarklet: Better Smart Keywords

このBookmarkletを適当なところにブックマークし、プロパティからキーワードを「/」(スラッシュ)にする(スラッシュじゃないと履歴とブックマークからの検索時に邪魔しちゃう感じだった)。これでロケーション・バーから以下のように検索できるようになる。

キーワードは後付けなので/ foobarの時点で履歴やブックマークからも開くことができる。Bookmarkletのコードを見ればわかるように正規表現で入力文字列からキーワードを切り出し(var [s,q,k]='%s'.match(/^(.*) (.*?)$/))、switchで振り分けてるだけ。

欠点は、

あたり。使い始めて3日程だけどそこそこ使いやすい……けどやっぱりブラウザの機能じゃないとキーワードを追加するのが面倒すぎて嫌になるのが致命的。

適当なHTMLファイルを用意してやればKeyword.URLからもいける。こっちの方がキーワードの管理がしやすく入力もしやすいが、置く場所を考えなくちゃならないのがネック。とりあえずGitHubに置いておいた。Keyword.URLには以下のように指定する。

http://hail2u.github.io/better-smart-keywords.html?

最後の?を忘れるとうまく動かない。これだとロケーション・バーから「nsILocalFile mdc」などとスマートに検索することができる。キーワードを省略した場合もGoogleで検索するようになっているので、デフォルトのKeyword.URLの上位互換。ついさっき作ったので使い勝手はまだ良くわからないけど、なかなか良さそうな予感はする。

そもそも積極的にスマート・キーワード機能を使っている人が少ない説。そんなことないよね?