読者です 読者をやめる 読者になる 読者になる

Google Chrome用Vimpのニューフェイス、cVim登場!

JavaScript

Vimium、Vichrome、Vromeと、Google ChromeVimキーバインドで扱える拡張は幾つかありましたが、
ここに来て新しい拡張が登場しました。
cVimです。
Chrome Web Store - cVim

特徴としては

  • Vimのようなフォーマットの設定ファイル
  • ビジュアルモードでテキストを選択
  • 正規表現を使ったページ内検索

が挙げられます。


この拡張は、以下のリポジトリーで開発されています。
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から削除しました。