Vimpのset completeはSよりs
にする方が良いと思う。
理由1
Sはサジェストエンジン(デフォルトはGoogle)による補完、sは検索プラグインリストの補完だが、sだと検索プラグイン自体に補完機能が内蔵されている場合、それも補完してくれる。
今までツールバーの検索フォームで補完されていたやつはそれが使えるということ。
Googleはデフォルトで補完が使えるから、Sにしなくても
:tabopen google 検索語句
とかで補完できる。
加えて、他のエンジンでも補完できる。
Amazonもここで検索プラグインを追加すれば(アドオンではなくただの検索プラグインなので躊躇しなくてよい)
Amazon Search Suggestions for Japan :: Add-ons for Firefox
:tabopen amazon 検索語句
で補完できる。(検索プラグイン管理画面で"amazon"にキーワードをわりあてておく必要あり。)
理由2
「yahoo 動画」で検索したいとする。
:tabopen yahoo 動画
とすると、Googleで「yahoo 動画」を検索するのではなく、
Yahooで「動画」を検索してしまう。
これは結構いらだたしい。
追記 >thanks@teramakoさん
回避するには、
- ":tabopen google yahoo 動画"として検索する
- yahooのキーワードを別のものに変更する(:dialog searchenginesから呼び出せる)
のどちらかを使うことになる。
1.の方法を使う人はset complete=sにしておけば、上記のように補完してもらえるというわけです。
すると
検索時は常に「:tabopen google」を使いたくなるので、
僕はsキーにsearchの意味合いで
nnoremap s :tabopen
という風に設定している。これでsを押すだけで
:tabopen google
と打ち込まれる。
他のエンジンで検索したいときは、普通にtを押して:tabopenから選択するが
set complete=sh
のようにsから順番にならべるようにしておけば
例えば
t → a → tabと押せば
:tabopen amazon
まで一気に補完されるので結構素早く検索できる。
おもうに
本来は全部tabopenに集約させずに
:url
:history
:bookmark
:search
とか分けられたらいいんだろうな。
「:tabopenとうつ」→「検索しよう」
ではなく
「検索しよう」→「:tabopenとうつ」
というのが自然な思考のながれだと思うので、補完してほしいものは限られている場合が多いはず。
「yahoo 動画」で検索したいときにyaとうってyahoo関連のurlが補完されても無意味だ。
そう考えるとGoogle Chrome型統一ロケーションバーは、これらが意識的に区別できるようにしないと使いにくいとおもう。
(g hogeでgoogle検索なだけでなく、h hogeで履歴検索ができるとか。でもこれだと今度は「c プログラミング」「k バンプオブチキン」とかで検索したいまれな場合に問題が起きたり。さらにアルファベット26文字は枯渇するので2文字以上のキーワードを許可すると、「yahoo 動画」問題が起こる。)
僕はあまりなんでもかんでもロケーションバーにぶっこむことに賛成じゃない。
追記 >thanks@retletさん
set complete=lと設定すれば、補完候補を絞れるようです!
[Firefox] Vimperatorで・・・だけから補完 - めも (2009-10-01)
そこで僕はset complete=slとしておいて、
「検索したい」→「:tabopen google hoge」
「履歴から飛びたい」→「:tabopen ^hoge]
「ブックマークから飛びたい」→「:tabopen +hoge]
という具合にやることにしました。