Vimperatorでウェブを閲覧する
Vimperatorの最もパワフルな機能の一つは、Firefoxの履歴の操作だ。:historyコマンドを使用すれば、通常のページだけでなくローカルファイルも含めた、最近閲覧した10個のページのURLを表示することができる。
履歴機能はデフォルトでは10ページを表示するだけなので、2日前に閲覧したページを探している場合にはあまり役に立たない。そこで、検索語(探しているページのURLやページのタイトルに一致させる文字列)を:historyコマンドと組み合わせて利用すると良い。例えば過去に閲覧したページの中で、タイトルかURLに「craigslist」という文字列が含まれているページを見つけたいという場合には、:history craigslistというコマンドを利用すれば、ブラウザウィンドウの最下部に履歴検索結果一覧ウィンドウが開かれ、ページのタイトルかURLに「craigslist」に一致する文字列が含まれているページのうち最近訪問した10個のページが表示される。
ページを閲覧するためには、履歴検索結果一覧ウィンドウ内の履歴のエントリをダブルクリックすれば良い(ちなみにこれについてキーボードから行なう方法は今のところは提供されていない)。検索結果を閉じるには、:pcか、またはより覚えやすく:pcloseを入力する。
ブックマークの使用について言うと、ブックマークを追加するには:bmaddコマンドを使用し、ブックマークを削除するには:bmdel url を使用する。ただし:mbdelを使用する際には、URLに部分一致するブックマークがすべて削除されるので詳細に指定する必要がある。
ブックマークを表示するには:bmコマンドを使う。また:bm!コマンドを使えば、ブックマークをすべて表示したページが開かれ、ページの最上部に検索バーが表示される。ヘルプテキストによると、:bm 式 を実行すればブックマークの中で検索を行なうことができるはずなのだが、私が試したところエラーが返ってきただけだったので、おそらくまだ実装が完了していないのではないかと思う。
検索
FirefoxではCtrl-fを入力するとステータスバーの近くに検索用ダイアログがポップアップするが、Vimperatorを使用している場合にCtrl-fを入力するとVimと同じ動作が行なわれて、1画面分先に進む。Vimperatorで検索を行なうためには、標準のVimの検索用キーバインドである/を使用することができる。ただしカーソルより前のテキストの検索を行なうキーバインドである?は認識されなかった。
検索語を入力すると、(一致する文字列があれば)最初に一致する文字列がある場所に移動する。Vimとは異なり、検索用フィールドから抜けるためにはEscを入力する必要がある。検索語に一致する文字列をさらに見るためには、nを入力して前方に、Nを入力して後方に検索を進めることができる。
検索語はすべてのタブで共通なので、たとえば1つめのタブ内でXYZを検索して、次にgtを入力して2つめのタブに移動しても、2つめのタブ内で同じ検索語を検索することができる。
ヘルプ機能
VimperatorのヘルプはVimと同様に、:helpと入力することでいつでも表示することができる。:helpコマンドを実行すれば、Vimperatorヘルプ文書のローカルのコピーが表示される。Vimperatorヘルプ文書では、Vimperatorで使用可能なオプションやキーバインドやコマンドがすべてカバーされている。
また、特定のコマンドに関するヘルプを直接的に表示することもできる。例えば:openコマンドのヘルプを見たい場合には:help :openとすれば良い。ただしこの場合の問題点は、利用したいコマンド名をすでに知っていなければならないという点だ。リファレンスとして使用するには問題ないが、何かをしたいときにどのようなコマンドを使えばいいのか分からないという場合にはあまり役に立たない。
終了
Firefoxを終了するための方法はVimと同様にいくつか用意されている。:qを入力すると、表示しているタブが1つである場合にはFireforxが終了する。複数のタブを表示している場合には、表示中のタブのみが閉じられる。
:qallまたはZQを使用するとFirefoxが終了し、セッションの履歴がクリアされる。Firefoxを終了したいが後程同じセッションを再開したいという場合には、その代わりにZZを使用すれば良い。
Firefoxをすぐに再起動したい場合には、:restartを使用することができる。
オプションの設定
:setを使用してVimperatorのオプションを変更できることについてはすでに説明した通りだが、Vimperatorのヘルプ文書で、設定可能なオプションの全リストを見ることができる。
また、設定ファイルを使用してデフォルトを設定することもできる。そのためには、自分のホームディレクトリの中に.vimperatorrcという名前のファイルを作成しておけば良い。そうしておけばVimperatorが起動時にそのファイルを確認するようになる。設定ファイルを使用することの利点は、Firefoxを起動する際にオプションをリセットすることができることだ。例えばFirefoxのツールバーを開きたくない場合には.vimperatorrcでそのように設定しておくと、前のセッションで一時的にツールバーを開いていた場合であっても確実に、Firefoxを再起動したときにはツールバーが開かないようにすることができる。
Vimperatorの設定ファイルで実現できることとできないことについてはまだあまり文書化されていないが、.vimperatorrcファイル編集用の文法ハイライトのためのVimの文法設定が用意されている。なお、Vimperatorの開発者Martin Stubenschrott氏は、Vimperator 0.5でAPIの変更と文書化を予定しているためユーザがスクリプト作成を行なうのはVimperator 0.5がリリースされた後にするべきだと述べている。またその時には:mapも利用可能になるとのことだ。
他の拡張との共存
Vimperatorは素晴らしい拡張だが、現時点ではFirefoxの機能や拡張の一部や、Vimperatorのキーバインドと衝突する操作キーを持つウェブサイトに関して問題になることがある。
例えばVimperatorを使用しているときには、guioptionsを使用してロケーションバーを表示させるようにしていても、ロケーションバーの中のフィード登録ボタンが機能しなくなるようだ。リロードボタンについても同じことが起こり、Vimperatorを有効にするとグレー表示になる。また、Firefoxのデフォルトのリロード用ショートカットであるF5が機能しなくなる。ただし、代わりにrを使うことはできる。残念ながらVimperatorにはフィード登録のためのショートカットがなく、Vimperatorを有効にしているときには、Firefoxのフィード登録機能を使用して簡単に新たなフィードを登録することができない。
またVimperatorではデフォルトのステータスバーが表示されないため、ステータスバーを使用する拡張はすべて影響を受ける。例えばGoogleのNotebook拡張の場合、まったく使えなくなってしまうわけではないが、ステータスバーにあるNotebookのアイコンをクリックすることでノートブックを開くことができなくなってしまう。それでもFirefoxのコンテキストメニュー経由であれば、ノートを追加するための「Note This(ノートに追加)」メニュー項目を使用することでノートブックを開くことはでき、Google Notebookのポップアップも問題なく機能するのだが、ステータスバーのボタンを使用することはできなくなる。なおFirefoxのデフォルトのステータスバーは、:set guioptions=sを使用することで表示させることができ、Vimperatorのステータスバーの上部に表示される。
さらにVimperatorのキーバインドは時折、 ウェブページが設定しているキーバインドと衝突することがある。私はしばらくの間、Vimperatorの操作キーとGoogle Readerの操作キーが衝突するためGoogle Readerを利用するかVimperatorを利用するかの選択を迫られているのだと思っていた。しかしVimperatorにはキーバインドの衝突に対する解決法が用意されていて、Iを入力すればVimperatorのキーバインドを無効にすることができ、またEscを入力すれば再びVimperatorモードに戻すことができる。これによりフィード登録ボタンにあるような不具合も解決できるというわけではないが、少なくともVimperatorをアンインストールしたり無効にしたりすることなく、フィードリーダのようなアプリケーションを使用することはできるようになる。
概してVimperatorのvi風のキーバインドはFirefoxに驚くほどよく馴染む。本当に必要になったとき以外にマウスを使用するのを嫌う筋金入りのVim常用者なら、Vimperatorを利用することでFirefoxを使うのがさらに楽しくなるだろう。
