rcmdnk's blog

20180221_wasavi

VimmerにとってVim以外の環境で普通にテキストを書かされるのは 非常に辛いことですが、 それを解決する色々な方法が考えられています。

特にブラウザはマウスを使って操作する代表的なアプリだと思いますが、 そこでも入力欄でVim操作したり、ブラウザの操作自体をVim的にキーボードでしたりする ために色々な拡張機能が作り出されています。

wasaviはそんなブラウザの入力欄をVim化してVimな編集を可能にしてくれるプラグインです。

wasavi

wasaviは ブラウザの入力欄を一時的にVim化しVimな編集を可能にしてくれる ブラウザの拡張機能です。

前回紹介したvim-anywhereの様に実際にVimを立ち上げるのではなく、 その場でVimをエミュレートしたものを作り出して編集する形なので 立ち上がりは早いです。

素晴らしいことにChrome、Firefox、Operaに対応しているので それらであればどれを使っていてもwasaviを使えます。

wasavi - Chrome ウェブストア

wasavi extension - Opera add-ons

Latest and unstable version of wasavi for Firefox

Firefoxに関してはFirefox Add-onsに登録されてないようですが、READMEにもある最新版のxpiをダウンロードして Firefox上にドロップしてあげればインストールすることが出来ます1

作者は日本人の人らしく、日本語のドキュメントもあるので 分かりやすいと思います。

wasavi - appsweets akahuku labs.

wasaviの使い方

基本的な使い方は、ブラウザのTEXTAREAにフォーカスが当たってる 状態でCtrl-ENTERを押します。

そうするとTEXTAREAがVimをエミュレートした状態に変化し、 Vimな操作で編集することが出来る様になります。

すでに書かれてる物があればそれもきちんと反映され編集できます。

通常は複数行に渡る様なテキストボックスで有効になる様になっていますが、 オプションでinput[type=search]など有効にするなどTEXTAREAを変更することも可能です。

Gmail上などでも動いて こんな感じで使えます。

wasavi

コマンドラインモードもあって、 :q!<ENTER>なら元の文字列をそのまま残す、 :wq<ENTER>なら編集後の状態を反映してwasaviを終了する、という状態になります。

設定

オプションを開くとexrcと言う欄があってここに.vimrcみたいにmapsetコマンドなどを書いておくことで 設定を反映することが出来ます。

初期設定だとビープ音が結構激しいのでset nolaunchbellはしておいが方が良いと思います。

後は上にも書いた対象の要素の設定や 開始する時に使用するトリガーキーの設定(初期値はINSERTCtrl-ENTER)、 除外するURLの設定などがあります。

また、Dropboxなどのオンラインストレージの選択項目もあり、 それらのストレージにあるファイルに直接wasaviから書き込んだり編集したり機能もついています。

他のVim拡張機能との競合性

READMEに書いてありますが、ブラウザ全体でVimライクな操作を出来るような拡張機能と 強豪がある場合もあるみたいで Firefox + Keysnailなんかを使ってる場合には設定ファイルを設置する必要があるみたいです。

現在使ってる環境のChrome + cVimでは特に問題は無いようです。

気になる点

Gmailでも使える、と書きましたが 現状バグ?があるみたいで、Gmailでwasaviを立ち上げて保存終了して 反映させると全ての空白行が消えてしまいます。

Gmail new/blank lines bug · Issue #134 · akahuku/wasavi

これは元々あった空白行も消えるので、結構書いた後にwasaviを立ち上げると 空白行が消えて面倒なことになるので気をつけたほうが良いです。 (改行コードか何かの解釈に問題があるのか、 一度wasaviを終了してまた立ち上げると消えたはずの空白行が残ってたりしました。 そこで終了してGmailに戻るとやはり空白行は消えてしまうのですが。。。a)

EvernoteのWeb版でもwasaviは有効に出来ましたが同様に空白行が消える問題が起こりました。

また、EvernoteではCtrl-Enterが効きませんでしたが、 そういった場合にも他のショートカットキーを設定するか 右クリックからのメニューでwasaviで編集を選択すると wasaviを立ち上げられます。

Gmailでもインストール直後とか時々使えなかったりしました。 (ちょっとどの様な条件なのかわからなかったですが。)

まとめ

ブラウザの入力欄でも場合によっては結構な量を書くこともあるかと思います。

そういった場合にやはりVimで編集できるのは嬉しいことで、 wasaviを使えばその場でVimを使えます。

vim-anywhereや拡張機能でも入力欄から外部のVimを呼び出して編集する様なものもありますが、 別途アプリが必要だったり立ち上げるのに時間がかかったりするのがちょっと面倒です。

それに比べてwasaviであればその場で出来て素早く編集できます。

VimそのものではないためVimの全ての機能が使えるわけではありませんが、 基本的な移動操作は勿論、コマンドモードでの:sort:%s/foo/bar/の様な置換なども 行えてノーマルなVim動作は一通り出来る様になっています。

さらにはChrome/Firefox/Operaと複数のブラウザに対応してるので 自分の好きなブラウザで使えるのも嬉しい所。

cVimやVimiumといった(今は亡きVimperator的な)ブラウザ操作をVimライクにするものとも 共存出来るので wasaviを加えてより一層Vim感を増すことが可能になります。

Sponsored Links
  1. 署名とかの問題でこういうの出来なくなっていた様な気がしたのですが wasaviはすんなり導入できてちゃんと使えました。

Sponsored Links

« vim-anywhere: Mac/LinuxでどこでもVimを立ち上げてテキスト入力する macOS & Chromeで外部アプリでリンクをクリックした際に新しいページなウィンドウが立ち上がる問題 »

}