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

Vimperatorの思い出とVivaldiへの期待

※はじめに

これは Vimp やめて Vivaldi 使おうぜとアジる記事ではない。最近何書いてもアジってると誤解されるの困る。

思い出

僕のプログラマになるきっかけの一つに、2008年頃にリナカフェに遊びに行った時に @mashiro にVimperatorを勧められたのがある(本人はおぼえてないかもしれない)。当時の僕は大学に入ったばかり。Firefoxは使っていたが、プログラミングは多少興味あるけど、難しそうだなぁ、程度の認識で、もちろんVimなんか使ったことがなかった。

初期設定はその場で教えてもらって、あとは家に帰って調べた。最初は、とりあえず便利なショートカットキーを提供してくれて、QuickSilverライクな絞込UI(今だとMacのSpotlightもそうなんだろうが、当時はQuickSilverというMacアプリぐらいしか似たようなものがなかった、気がする)を持つインターフェースとういう認識だったが、いろんな指南記事を見ながらプラグインを突っ込んだら見違えるように動くようになっていき、言いようもない万能感を覚えた。この時点だと、いわゆるスクリプトキディというやつだったわけだが。

実際、プラグインを書くほどの実力はないので、CodeRepos(覚えているだろうか、CodeRepos) にある、ostune さんや retlet さんの設定ファイル、 VoQn の書いた colorthema、そういうものに触れてunix的な設定ファイルの文化とOSSの雰囲気みたいなものに触れた。JavaScriptのコードに触れたのも初めてだった。

僕にとってのプログラマ文化の入り口だったので、Vimperatorにはとても感謝している。

Vimparator の終わりの気配

うろ覚えなんだけど、Vimparatorの開発はいろいろ不穏で、作者に彼女が出来てコミット権を移譲しないまま開発が数ヶ月止まったとか、Donateの分配で揉めたとか、それらが理由かは知らないがForkで開発リソースが分散されたとか、色々あった記憶がある。

なんだけど、やっぱりChromeの興隆と、Chromeに追従しようとしてFirefoxXULを捨てようとする動きが、Vimparatorの根幹となるXULとそのAPIの存続を危うくしていたのが、開発のアクティビティと周囲の期待に響いたんだと思う。2011年ぐらいから、皆いつかVimparator死ぬ時が来る、と覚悟しながら使っている雰囲気で、実際、定期的に動かなくなってはその場しのぎのパッチをひねり出す、というイベントが、定期的に発生していた。

それで今月のアップデートでついに :tabopen コマンドという、使い勝手の根幹を支えるAPIが死んでた。(代替機能も、あるにはあるのだが…)

Macを買い替えたついでの環境構築で、ついに2017年にしてVimperator構築をやめた。

Chrome の消化不良

ChromeはVimparatorの代替とはならない。少なくとも僕には。

僕にとって、およそChromeの不満は2つ。中央プロセスが握ってる共通キーバインドを変更できないこと。もう一つは、タブが縦に並べられないこと。

1つめは、Vimiumなどで解決できる、という反論がありそうだが、DOMContentLoaded 以降にプラグインがハンドラを追加する実装なので、読み込み中のタブでは動かなかったり、ページ側のJSでオーバライドされたりイベントバブリングを止められたりする。些細な問題のように思えるが、これのストレスは大きかった。

もう一つ、タブが縦に並べられないのは、僕は大量にタブを開く運用なので、文字が潰れて読めなくなる。下手すると50個や80個開いているので、Chromeの上部タブでは識別不能になる。Chromeには昔 --vertical-tabs みたいなオプションで縦に並べるUIもあったのだが、いかにもやっつけで作った隠しオプションという感じで、今でもメンテされてるかは知らない。消えてそうな気がする。

Vivaldi

OperaのCTOが作ってるブラウザ。2ヶ月ほど、日常用のブラウザはこれだけを使ってる。(開発用には色々実験する為にChrome Betaを使っている)

https://vivaldi.com/

実態はChromeCTF + そのメタプロセスと言った感じらしく、その意味ではElectronなどと同じだ。ChromeのUI気に食わないから作り直そうぜというのは、一昔前のIEComponentを思い出させる。

ファウンダの一人に日本人の人がいるからなのか、公式サイト、設定画面などはしっかり日本語している。

そして僕が望む以下の機能がある。

  • Vertical Tab
  • 1キーショートカット
  • QuickSilverライクな検索絞込

こんな感じ

キーボードショートカットのカスタマイズの範囲が大きく、Vimperatorライクな(もっというとVimライクな)使用感に影響するので、これだけでChromeではなくVivaldiを使う価値がある。

ただし、TextareaやInput、タブ側のキーボードショートカットを優先する。GithubTwitterでは別のイベントが誤爆している。というかQuickCommandのフォーカスもTextareaに取られる。これらはもちろん不満だが、Chrome with Vimium 環境よりマシ、といった程度。

Vivaldi への不満

上のショートカット優先度の問題もあるのだが、他にも、現時点では、日本語IME周りの問題が多い。

  • URLバーで検索するために日本語を入力すると、1文字目はAscii前提で補完しようとして、2タップ目の日本語で補完を諦め、「hあ」みたいな入力になる
  • kanaコマンドの入力をinput/textareaでキャッチされて、GitHubFacebookで、編集時は見えない、異常な文字コードの何かが途中で挿入される
  • QuickCommandでIMEの補完確定のEnterを拾って検索を実行する。おかげでCtrl-Mの存在を思い出した
  • 日本語関係ないけど、何故かQuickCommandからGoogleで検索しようとすると検索が発火しない。仕方なくデフォルトのBingで検索している
  • Vivaldi関係ないけど日常的にBingを使わされていると、Bingの検索結果の質の悪さにうんざりさせられる。市場が健全じゃないのでMS頑張ってくれ、もっと。

日本語化はされているが、総じて、IMEを考慮したプログラムが書けるチームではなさそう、という残念感がある。(これらの一部はサポートからメールした。Forumはなぜか新規アカウント作成ができなかった)。この辺、今の僕だったらコード想像つくし、その上で直せるんだけど、OSSではないので、それができない。なんとかしてなおして or なおさせてほしい。噂だとReactらしいし。

第二次ブラウザ戦争を終えて

Chromeが勝ったが、そもそもモバイルの比重で、ウェブブラウザの相対的な比重が薄れてるのが近年の事情。

ChromeVivaldiも頑張って欲しいし、もちろんRustでレンダラをスクラッチしたという次世代Firefoxには期待しているが、僕個人としてはVivaldi現時点で好みなので、頑張ってほしいなあといった感じです。