wasavi (VI editor for any web page)

#

wasavi は ChromeOperaFirefox 用のエクステンションです。 wasavi はあらゆるページ上の TEXTAREA 要素を VI エディタ化します。wasavi はほぼすべての VI コマンド、およびいくつかの ex コマンドをサポートします。

wasavi の開発は継続中です。バグレポートや機能の要請はどんなものでも歓迎します。

また、開発を継続するための寄付も歓迎します:

Donate Flattr

English version README

簡単な使い方

込み入った使い方

インストール

現在、wasavi は以下のブラウザで動作します。各ブラウザで以下のリンクをクリックし、標準的なエクステンションのインストール方法に従ってください。これらのエクステンションは各ブラウザのアドオン・ストアに登録されています。

ソースコードと最新の開発版は Github で管理しています:

Chrome ユーザへの注意

Chrome は Ctrl+T、Ctrl+W および Ctrl+N の基本的なショートカットを予約しています。これらのキーは wasavi から使用することができませんが、その代わりに Alt+T、Alt+W および Alt+N を使うことができます。

よく聞かれる質問

wasavi の起動

TEXTAREA にフォーカスし、Ctrl+Enter を押してください。

wasavi の終了

wasavi を終了するには ZZ:q:wq などの VI の終了コマンドを入力してください。

wasavi が :set コマンドで受け入れるオプションは?

を参照してください。

注意: 受け入れるが、まだ何の効力も持たないオプションもあります。

初期設定を変更する

各ブラウザのエクステンション管理機能から wasavi の設定ページを開き (または wasavi 上で :options と入力)、"exrc" テキストボックスを編集してください。

ビープ音を制御する

ビープ音を無効にするには、set noerrorbells と exrc に追加します。ビジュアルベルにしたい場合は代わりに set visualbell を追加します。

また、wasavi 起動時のチャイム音は set nolaunchbell で無効にできます。

いずれのビープ音のボリュームも、set bellvolume=N で制御できます。値 N の範囲は 1 から 100 です。

ローカルファイルにアクセスする

ドキュメント を参照してください。

Firefox で Vimperator/Keysnail/VimFx と共存する

Vimperator

wasavi_mediator.js を Vimperator のプラグインディレクトリに置いてください。たとえば ~/.vimperator/plugin%HOME%\vimperator\plugin です。

このプラグインは wasavi の状態に従って Vimperator のパススルーモードを制御します。

Keysnail

wasavi_mediator.ks.js を Keysnail のプラグインディレクトリに置いてください。

このプラグインは wasavi の状態に従って Keysanil のサスペンドモードを制御します。

VimFx

最新の VimFx は wasavi を編集可能な要素の一種として認識し、wasavi の動作中は一時的に VimFx 自身のキーバインドは無効になります。

wasavi の動作中に VimFx のキーバインドを使用するには、ページの wasavi 以外の領域をクリックするか、:set esctoblur とした上でノーマルモード時に <esc> を押します。フォーカスが wasavi から外れ、VimFx の機能が戻ります。

単体のテキストエディタとしての利用

wasavi をインストールし、リンク オンラインアプリとしての wasavi を開いてください。wasavi が自動的に起動します。この状態では、Dropbox/Google Drive/OneDrive またはローカルのファイルに対して ex コマンド :read:write:edit:file が使用できます。Dropbox/Google Drive/OneDrive へのアクセスのために OAuth による承認が必要です。

自動的な設定の上書き

wasavi の実行時に入力された :set コマンドは、エクステンションに永続的に記憶され、wasavi の次回の実行時に再生されます。

この設定の上書き機構は最大 30 の各 URL ごとに機能します。この機能が不要であるならば、exrc に :set nooverride を追加してください。上書きは無効になります。

Migemo と協調する

Chrome 版の wasavi は Migemo 検索を行うことができます。Migemo Server をインストールし、/? コマンドの検索文字列中に特別なメタ文字である \M を含めてください。\M が検索文字列に含まれていると、これらの検索コマンドは Migemo を介して実行されます。

バグを見つけた

wasavi issue tracker で issue を作成してください。

Tips and Tricks

実装済みコマンド

Operations

c y d > < gq gu gU

Operation Aliases

cc yy dd >> << C Y D gqq guu gUU yss ySS

最後の 1 文字の前にカウンタを挿入することができます。

Surround Operations

Motions

- + ^ <home> $ <end> % | , ; _ / ? ' ` ( ) { } [[ ]] <enter> 0 j k h l ^N ^P ^H <down> <up> <left> <right> <space> w W b B e E gg gj gk g^ g$ G H M L f F t T n N

Range symbols (Vim text objects)

Scroll commands

^U ^D ^Y ^E ^B ^F <pageup> <pagedown> z<enter> z. zz z-

Edit commands

x X <delete> p P J . u ^R ~ ^L ^G ga gv m @ q r R a A i I o O & s S v V ZZ gi ^A ^X

ex commands

abbreviate cd chdir copy delete edit file filesystem global join k map mark marks move options print put pwd quit read redo s & ~ set sort submit registers to unabbreviate undo unmap version v write wq wqs xit yank > < @ *

ex コマンドでのアドレス指定はフルサポートされています:

さらに、/re/+1p のようにオフセットも受け付けます。 2 つのアドレスは通常 , で繋ぎますが ; で繋ぐこともできます。

入力モードのコマンド

行入力モードのコマンド

範囲選択モードのコマンド

範囲選択するにはコマンドモードで v または V を押します。

囲み識別子

囲み文字列

Vim 互換の機能

Fork me on GitHub