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さん

回避するには、

  1. ":tabopen google yahoo 動画"として検索する
  2. yahooのキーワードを別のものに変更する(:dialog searchenginesから呼び出せる)

のどちらかを使うことになる。
1.の方法を使う人はset complete=sにしておけば、上記のように補完してもらえるというわけです。

すると

検索時は常に「:tabopen google」を使いたくなるので、
僕はsキーにsearchの意味合いで
nnoremap s :tabopengoogle
という風に設定している。これで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 hogegoogle検索なだけでなく、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]
という具合にやることにしました。