Vimium、Vichrome、Vromeと、Google ChromeをVimのキーバインドで扱える拡張は幾つかありましたが、
ここに来て新しい拡張が登場しました。
cVimです。
Chrome Web Store - cVim
特徴としては
が挙げられます。
この拡張は、以下のリポジトリーで開発されています。
1995eaton/chromium-vim - GitHub
今はかなりアクティブなので、issueに投げても一瞬で返事が返って来ます。
初期バグがまだあると思いますので、インストールして何か気付いたらissueを投げてあげるといいでしょう。
作者がやる気があるうちに、自分が気に入らないところを直させるのがコツです。
やる気がなくなってしまうとissueもPRも放置されてしまいますので…
一つだけうまくいかなかったのは、コマンドの:が発動出来なかったことです。
これは、次の設定でできるようになりました。
map ; :
英字の開発者が作ってるソフトに有りそうな感じのバグですね。
現在の設定ファイルはこんな感じです。
set nosmoothscroll let barposition = "bottom" let highlight = "#ffff00" let typelinkhintsdelay = 0 let hintcharacters = "fdsawerjkiop" map 0 scrollToTop map <C-f> scrollFullPageDown map <C-b> scrollFullPageUp map i goToInput map a goToInput map d closeTab map u lastClosedTab map ; : let blacklists = ["chrome://*","https://mail.google.com/*","http://feedly.com/*","https://www.google.com/calendar/*"]
快適そうなのでしばらくcVimを使ってみることにします。
追記 (2014/7/3)
cVimは全てのiframeに対して大きなJavaScriptコードを実行しています。
iframeを多用するページ (例えばアフィリエイトの広告が多いページや、ツイートボタンが多いページ) だと、異常なくらいにページのロードが遅くなります。
cVimの作者はあまりcontent scriptを軽くするというアイディアには乗り気ではないようです。
また、cVimのソースコードは複雑に絡み合っており、コードを書き換えるのは困難を極めます。
これまでのVimiumやViChrome、VromeそしてcVimと、いつまでたっても
- コードが整っており、読みやすくて変更しやすい
- 拡張性が高い
- コマンドラインを実装していて色々できる
- 高速に動作する
- iframeを意識させない操作感 (ツイートボタンすらクリックできないのは糞だ)
を備えた拡張がないので、自分で作ることにしました。
これまでのプロジェクトのコードは一通り手元にcloneし、少しずつ読んでいますが、
どれかのコードからフォークしてリファクタリングするよりも、0から実装したほうが圧倒的に楽だし速いと判断しました。
それでも公開できるレベルになるまでは、半年以上はかかると考えられます。
どうか気長にお待ち下さい。
取り敢えず私は、cVimをChromeから削除しました。