Firefox 51が正式リリースされましたが、 このアップデートでVimperatorの機能の一部が動かなくなる問題が出ています。
Firefox 51
Firefox 51ではこれまで段階的に導入されてきたe10s (Electrolysis)という マルチプロセス技術が基本全てのユーザーに対して有効になるようになっていて、 これによってVimperatorの一部機能が動かなくなっているようです。
Vimperator don’t work in Firefox Beta. Not e10s. · Issue #568 · vimperator/vimperator-labs
特にタブ関連の機能が一通り使えなくなっていて、
:tabopen
や<C-p>
, gt
で次のタブへ移動、等が全て動きません。
d
やu
でタブを閉じる、閉じたタブを開く、も出来ません。
またr
での再読込も同様にタブの機能を使っているようでtabs is not defined
というエラーが出ます。
このtabs
という変数は色々なVimperatorのスニペットに載っていますがこの定義の部分が動かなくなっているようです。
また、f
でリンクに数字や文字をつけてそれを押すことでリンクを開ける
Hit-a-Hintの機能も動きません。(リンクに文字が関連付けられない。)
タブ関連を取り敢えず自分で実装
ぱっと使ってみて自分なりに使えなくて困ったものを取り敢えず自分で実装してみました。
1 2 3 4 5 6 7 8 |
|
それぞれ、新しいタブで開く、タブの移動(次、前)、タブを閉じる、閉じたタブを開く、リロード(キャッシュを使用、破棄)です。
新しいタブで開く、については、単純にこのmytabopen
というコマンドを使おうとすると
補完が効かないので一旦空白ページを作ってそこでopen
する様なことをしています。
取り敢えずこれでタブ周りで気になる所は直せたかな、と言う感じです。
Hit-a-Hint
これも結構重要な機能なんですが簡単には解決できそうにありません。
Hit-a-Hint :: Add-ons for Firefox: https://addons.mozilla.org/ja/firefox/addon/hit-a-hint/
とかも今は使えない様なので取り敢えずこれは様子見。。。
差し当たり、/
で検索モードに入ってリンクの言葉を検索してその上に来た時にEnter
を押すと
そのリンクが開けるのでそれで代替しています。ちょっと、というかかなり使い勝手は下がりますが。
他のVim on Firefox
Firefoxのアドオンのサイトでvim
を検索すると、
VimFx: https://addons.mozilla.org/ja/firefox/addon/vimfx/?src=search
というアドオンがおすすめとして出てきます。
これはGoogle Chromeの Vimium を参考にして作られたアドオンだそうで、 Vimium的な簡単なVimライクな操作がFirefox上で出来るようになっています。
Hit-a-Hintの機能の機能は付いていますが、コマンドラインは実装されて無くて、
open
的なコマンド(o
を押した時)はそのままロケーションバーにフォーカスが行くようになっています。
t
だと新しいタブを開いてロケーションバーにフォーカスが行きます。
Vimperatorを素のままで操作感だけで使っている場合は十分は代替候補になると思いますが、
qmarks
の様な機能やプラグインなんかを使って色々やってる場合には代替にはなりません。
単純な操作感だけであればOS全体でも出来たりするので。
唯一、現在Vimperatorで使えなくなってるHit-a-Hintがちゃんと動いてたので そこは良いな、と思ったりはしました。
設定に関してはGUIで出来ることが多いようですが、 細かい所は設定ファイルを使ってやるようで、設定ファイルはJavaScriptになっています。
後は個人的にですが、d
、u
が上下への移動になってたり
Vimっぽくないな、と思う様なキー設定がなんとなくあれだったり。
まあ、変えられますし、Vimperatorに慣れてるからVimperatorのキーに疑問を思わないだけなのはありますが。
ただ、VimFxにするくらいだったらGoogle Chromeにして何かしらのVim的なものを入れるかな、と言う所も。 Vimiumに比べるとVimFxの方が色々できて良い、と言う意見もあったりしたので Vimiumを敢えて使うことは無いとは思いますが。
Google Chromeでの候補としてはcVimかな、と。
これはコマンドライン機能もあり、また設定ファイルもVimスクリプトの感覚で書けます。
Firefoxでもう一つ、昔Vimperatorとケンカ別れして行った1
Pentadactyl: http://5digits.org/pentadactyl/
ですが、こちらはHomepage上や
Firefoxのアドオンサイト上: https://addons.mozilla.org/ja/firefox/addon/pentadactyl/?src=search)h
での更新が止まっているので完全に辞めたのかな、と思っていたら
GitHub上で更新を続けていてサイン付きのリリースが公開されています(元々の開発者ではないユーザー?)。
最新のpentadactyl-signed-7304.xpiを入れてみた所、
Hit-a-Hintやtabopen
等もきちんと動きました。
設定ファイルに関してはVimperatorのものを多少書き直せば使えると思うので、 もしVimperatorの復帰が難しいようであればこちらに移るのも一つです。
逆に言うと、現状どこまでVimperatorとPentadactylが違う状態になってるかわかりませんが、 Pentadactylで出来るならVimperatorでも出来るだろう、とも思うのですが。
まとめ
そんな感じで色々議論がありますが、 なんとなく、VimFxというアドオンがフューチャーされてる感が強いです。
使い方にもよるかもしれませんが、たしかにVimperatorは癖が強いこともあるので。 簡単な操作だけを使ってる人は移る人も多そう。
ただもう結構長い間それなりに使い込んでる状態だともはやVimFxは別物です。
取り敢えず短期的には上のタブの実装だけ入れてVimperatorを使っていこうと思います。
Hit-a-Hintが使えないのは結構不便なんですが、検索技でしばらくはごまかしで。
ちょっと時間がかかりそうであればPentadactylを試してみたいと思います。
ただ、Firefoxの方針として、将来的にこの手のアドオンが全て使えなくなる可能性もあるので そういった時にはChromeに移るのかな、とも。。。
追記: 2017/01/30
Vimperator don’t work in Firefox Beta. Not e10s. · Issue #568 · vimperator/vimperator-labs
このスレッドで問題を修正するコードを既に書いてる人が居て、 現在はその人のレポジトリのフォーク版で見ることが出来ます。
上のスレッド中にそのフォーク版からxpiをビルドして使用するインストラクションもあります。
が、ちょっとやってみたんですが入れようとするとファイルが壊れてるからインストールできない、的なエラーが出ました。 やってみたのはMac上です。
また、インストラクション中にはprivate.propertiesの書き換えの話がありますが、
AMO_API_KEY
やAMO_API_SECRET
は
Manage API Keys :: Developer Hub :: Add-ons for Firefox
で作成できましたが、UUID
の部分がちょっと分かってません。
Vimperator公式では[email protected]的なIDをふってるんですが、これを使おうとすると既に登録があってダメ、と言われるので やはり自分で用意しないといけないんですが、何が正しいのか。
適当に[email protected]とか書いて見たところmake sign
は通ったのでそういった適当な物でも良いのか。。。?
make
が通ってもインストールできなかったわけですが、
オリジナルのものを同様の方法でコンパイルしてインストールしようとしてみた所出来たので、
取り敢えずは適当なIDでも出来ることは出来る模様。
ただ、この方法だとxpiを一度上のDeveloper Hubに登録する形になるので 下手なものを作るのはちょっと気をつけた方が良いかも。(一応作ったものは削除しておきました。)
あと、
.../Profiles/xxxxxxxx.default-0000000000000/extensions/[email protected]
と言ったプロファイルのディレクトリの中にVimperatorのxpiの本体がありますが、 これをVimで直接開いて中のファイルを上の修正通り書き換えて見ようかと思ったんですが、 ちょっとでも書き換えてFirefoxを起動するとこのアドオンの署名がだめになってアドオンが無効化されてしまいました。
いずれにしろちょっと上手く行かなかったんですが、 直すべき所はなんとなく見つかってる様な感じなのですぐに新しいリリースが出ると期待してます。
追記ここまで
追記: 2017/02/01
このアップデートがそのまま公式のレポジトリに反映されています。
こちらを使ってビルドしてみた所上手くいきました。 (上のFork版のでもコードは全く一緒なのでおかしいな、と思ってもう一度やってみたら今度は問題なく出来ました。。。謎。)
追記ここまで