Firefox 57のリリースまで後2週間ほどとなり、 WebExtensionsを使ってない拡張機能の寿命が迫っています。
Vimperatorもそのうちの1つで、Vimperator自体が対応するのはどうやら難しそうな状況で 色々探してますが 最近出来たvim Vixenが代わりになる可能性を見せています。
Vim Vixen
Vim VixenはFirefox上でVimライクな動作を可能にしてくれるプラグインで J/Kでの上下移動などの基本的な動作や Hit-a-Hintの機能などが実装されています。
コマンドモード
他のVim系アドオンとの決定的な違いは コマンドモードがあることです。
色々とVim系のアドオンはありますが、Chromeのものを含め、 これまでにVimperatorの様なコマンドモードがあるものはありませんでした。
Oとかでコンソール窓的なのを開いてURLへ移動したり検索結果を出したりすることは出来ますが これはアドレスバーへ入力するのと何ら変わりません。 (ならアドレスバーを直接使えば良いじゃん、とも思うのですが、どうもアドレスバーをフォーカスすることはアドオンからは難しいので無駄に別コンソールを実装する必要がある?)
Vim Vixenでは こんな感じでVimperatorちっくなコマンドモードが実装されています。
ただし、現状あるコマンドはopen
、tabopen
、winopen
、buffer
だけなのでbuffer
という現在開いているタブから選択するという機能は他には無いものではありますが
基本的には出来る事は他のものと余り代わりありません。
ただ機能的にはここに他の動作を行うコマンドも実装は可能な感じなので期待してます。
現在のURLが予め入力されたopen
これらのコマンドに関連して、Oでopen
コマンドへの引数の入力状態になりますが、
Shift-Oを押すと現在のページのURLが入力された状態で
open
コマンドの編集を始める事が出来ます。
これは個人的には画期的なものです。 今までVimperatorでも 同じサイトのちょっと違うページを見たい時、閲覧履歴に残っている所から探すのに そのサイトのトップディレクトリを入力すると補完候補でそのサイトのページが色々出てくるので
- 現在のページのURLをコピー(Y)
open
コマンド開始(O)- Control-Vで現在のURLをペースト
してから編集、みたいなことをしていました。 これをShift-Oだけで出来る様になります。 (同様に新しいタブに開きたいならShift-T。)
設定
キー設定などは拡張機能のページからVim Vixenのページに行くと Configure Vim-Vixenという欄があって そこにJSON形式で
"o": { "type": "command.show.open", "alter": false },
といった感じに書いていく様になっています。
デフォルトのキーも全て載っているのでデフォルトの設定で消したい場合は ここから削除すればOKな模様。
が、ちょっと以下のような設定を追加してみたんですが
";": { "type": "command.show" },
"<C-p>": { "type": "tabs.prev", "count": 1 },
"<C-n>": { "type": "tabs.next", "count": 1 },
"<C-o>": { "type": "navigate.history.prev" },
"<C-i>": { "type": "navigate.history.next" },
最初の;
以外の設定が上手く動作しませんでした。
そんなIssuesも無いようなので何か間違えてるのか。
まだリリースはされてませんが、 GUIな設定も開発を行っている様です。
特定のページで操作が効かない
Vimium-FFでもそうでしたが 空白ページやFirefoxのアドオンのページでは操作が効きません。
どうもWebExtensionsにするとこの辺避けられない制限? (JavaScriptが動かない?)
まとめ
Vimperator亡き後のアドオンですが これまでChromeに移ってcVim、というのが一番の候補でしたが Vim Vixenもかなり可能性を感じます。 まだ出来たばかりなので更新も続々とありそうです。
後2週間ですが、さてどうしたもんでしょうか。