rcmdnk's blog

20210419_vieb_200_200

ViebというElectronで作られたVimライクな操作が出来るブラウザについて。

Vieb

Vieb - Vim bindings for the web by design

ViebはElectron製のブラウザで、操作がVim的なキーバインディングになっています。

Windows、macOS、Linuxの環境で使うことができるマルチプラットフォームなアプリケーションです。

ソースコードはGitHubで公開されていて、GPL3.0のライセンスが付けられているOSSです。

他のブラウザとの違い

20210419_vieb.png

基本的な機能としては他の一般的なブラウザと同じだと思います。 タブ機能なども備えています。 アドレスバー的なものが上にあってそこにURLを書き込めばページに移動できます。

一方で、一般的なブラウザを考えると、 まずマウスで操作するためのボタンなどが上部に全くありません。

操作は基本的にキーボードでVimライクに、ということで。

なんとなくターミナル上のブラウザw3m を思い出させる様な感じがしました。

一応マウスでもスクロールやリンクをクリックしたりなど通常のブラウジング作業はできますし、 右クリックで出てくるメニューで前のページに戻ったりタブを消したりすることができます。

Viebで出来ること

Viebで出来ることしては

  • J/Kで上下へスクロール
  • その他タブの作成、削除、ブラウザバックなどの基本操作をすべてキーボードで(かつVimライクに)
  • Windowの分割
  • Follow mode (Hit a Hint)
  • vimrcライクなviebrcでの設定管理

などがあります。

Windowの分割、に関しては拡張機能などで実現しているブラウザもありますが、 Viebでは元から実装されていて、かつVimの様な間隔で分割を管理できる、移動が出来ます。

20210419_split.png

また、Vimライクな拡張機能でよくあるHit a Hint (Fなどを押すとページ中のリンクに文字が割り当てられ、その文字キーを押すことでリンクに飛べるもの)的な機能が Follow modeとして実装されています。

20210419_followmode.png

加えてこういった拡張機能で特に重要だと思うのが自分で自由にカスタマイズ出来る点で、 Viebではvimrc的な文法で設定が出来るviebrcというファイルで設定が出来るようになっています。

set incsearch
noremap <C-h> <:history>
colorsehcheme default

の様に設定をsetで指定したりnoremapでキーバインディングを設定したりできます。

viebrcはOSによって

  • Linux: ~/.config/Vieb/
  • Windows: *%APPDATA%\Vieb*
  • Mac: ~/Library/Application Support/Vieb/

の様な場所がデフォルトの場所です。

最初に:mkviebrc fullとすると初期設定が上記の場所にviebrcとして書き出されます。

また、helpページからChromeやFirefoxのデフォルトキーバインディングに合わせる様な設定をダウンロードして使うこともできます。

Vimライクなブラウザ

ブラウザでVimライクな操作感を実現してくれたものとして FirefoxのVimperatorというものがありました。

ただ、この拡張機能はFirefoxのアップデートにより、拡張機能からいじれるブラウザの機能が制限されたため使えなくなりました。

そこでcVimというChromeで使える拡張機能を使っていました。

が、この拡張機能はすでに開発者が開発を止めていて、現在は自分でソースコードからコンパイルして なんとか使える状態ですがこれもChromeのアップデートでいつ使えなくなるかわかりません。

ブラウザのセキュリティ性を上げるために拡張機能で出来ることに対する制限が強くなっていくなかで こういったものはどんどん使えなくなっていくかもしれません。

VimperatorやcVimの良いところはコマンドモードやサービモードがVimライクなところや、 設定ファイルがvimrcの様な書き方ができ、色々とカスタマイズ出来るところでした。

他にもキーバインドだけを変更出来る様な拡張機能はちょこちょこありますが、 それであればAutoHotkeyやKarabiner-Elementで変更すれば十分であまり意味がありません。

そういった中でブラウザとして元からそういった機能を全面的に押し出している Viebはかなり気になるブラウザ。

Sponsored Links
Sponsored Links

« tsd2gspread: 時系列データをGoogle Sheetsに書き込むPythonツール vim_ahkでモードによってキャレットの太さを変える »