Vimperatorの代替をVim VixenにすべきかTridactylにすべきか

2019-05-29追記

だいぶ前から、Tridactylにbindurlという機能が追加されて、これにより(部分的に挙動が怪しくはあるが)、ある程度feedSomeKeys相当の機能も使えるようになった。

Tridactylは挙動があちこち怪しくはあるのだが、それを差し引いてもVim VixenよりVimperatorに近い機能を実装できている感じはあり、個人的にはもうこちらだけ使っている。

2019-04-07追記

この記事書いてからどちらもいろいろ機能増えてるので、あまり参考にしないこと。バージョンアップに追従したいがなかなか時間が取れない。


この間Quantumでない最後のESRが死んだので、Vimperatorが完全に死にました。いやまあWaterfoxとかもあるけど、そもそもVimperator自体がだいぶ前から死に体だしと。

で、代替はVim Vixenかなあと思ってたんだけど、Tridactylってのもあると知ったので両方調べたり試してみたり。その結果を雑にまとめてみた。

結論から言うと現時点ではクイックマークを使えるという一点だけでもTridactylかなあ、でもどっちもつらいんで、まだ修正しやすそうなVim Vixenを、自力でなんとかするのがベターかな、といった感じ。

Vimperatorで使っていた機能=代替に欲しい機能

これきちんとリストアップしないと、うまく比較できないのでは、と思いリストアップ。

  • Vim風の操作
    • ページを開く操作。
      • :open(o, O), :tabopen(t, T), go, gn, gu, gU
        • :open系では、ブックマーク・履歴等からの総合的な検索(多分Firefoxのアドレスバー同等?)や、prefixによる各種検索。
      • f, Fはそこまで使ってなかった。
      • p, Pは誤爆多いので潰してた。
    • 履歴移動。
      • CTRL-O, CTRL-I
    • タブ操作。
      • gt, gT, d, u, :tabm[ove], :tabo[nly]
    • ページ内移動。
      • j, k, h, l, CTRL-D, CTRL-U, CTRL-F, CTRL-B, gg, G
      • m, `でのマーク移動もたまに使ったが、まあなくても。
    • ページ内検索。
      • /, n, N. ?はあまり使ってなかったと思うけどまあ/実装するなら?あるよね。
      • また検索履歴の呼び出し。
    • 入力コントロール内での操作。
      • i_CTRL-BをLeftにマップしたり、i_CTRL-FをRightにマップしたり、シェル風操作に。
    • 表示の操作。
      • zi, zI, zo, zO, zz
    • その他操作
      • i, INSによる一時的な機能の無効化。
      • :ec[ho]を電卓代わりにして計算とかもちょっと。
      • :res[tart]
  • その他
    • :styleによるページごとの細かなCSSの調整。
    • addUserCommandでちょっとしたスクリプト
  • プラグイン
    • feedSomeKeys
      • 一部サイトで一部キーをサイト側に流すようにして。またマップすることでサイト側のキー操作をカスタマイズする感じにしたりして。
    • copy.js
      • y, YでそれぞれURL, titleのコピーをできるように。

欲しい機能の、Vim Vixen, Tridactylそれぞれでの実装状況

機能 Vim Vixen Tridactyl
o, O, t, T △ (ブックマークからの検索ができず、候補の編集もできない)
M, go, gn ×
gu, gU
f, F
CTRL-O, CTRL-I ○ (デフォルトではマップされてない)
gt, gT
d, u
:tabm[ove] ×
:tabo[nly] ×
h, j, k, l
CTRL-D, CTRL-U, CTRL-F, CTRL-B
gg, G
m, ` × ×
/, n, N ○ (検索履歴を辿れない) × (Firefox自体のページ内検索が出るが、その挙動も不完全?)
i_*(フォームコントロール内のマッピング) × ○ (一応実装されているようだがWebExtensionsの問題か制限が多過ぎる)
zi, zo, zz
zI, zO × ×
i, INS × (<S-Esc>でアドオン丸ごとの無効化は可能)
:echo × × (コマンド自体は存在しているっぽいが出力されない)
:restart × ? (実装されているようだがNative Messenger? が必要とのこと)
:style × ×
addUserCommand × ×
プラグイン × ×
feedSomeKeys相当 × (ブラックリストでサイトごとのアドオン丸ごとの無効化は可能) ×
copy.js相当

その他の気になる点

  • Vim Vixen
  • Tridactyl
    • j, kの挙動がページによって怪しい気がする。
    • h, lで左右両端まで行くと、次にページトップに飛ぶような。
    • コマンドの省略ができないのが地味につらい。:tabmoveなら、:tabmで駄目とか。
    • gnXで、Xが未定義の場合にgnが無視されてXが通ってしまうのがちょっとアレ。