独特な操作性を持つテキストエディタ「Vim」。使いこなすことができれば生産性を大きく向上させることができるテキストエディタとして世界中の開発者から愛用されています。
本日紹介する「win-vind」は、このVimのパワーをWindows全体で利用すべく開発がすすめられているオープンソースツールです。WindowsのGUIをVimと同じような方法でインストールすることができ、以下のような特徴を持っています。
- Vimユーザーフレンドリー: 設定方法やモードコンセプトはVimから派生していて、VimライクなUI操作が可能。Vimユーザーならばほとんど学習コストがかからない。
- 有用なビルトインコマンドが多数存在: 組み込みコマンドを組み合わせることで、ユーザー定義コマンドを自由に作成できる。
- 非常にポータブルで完全なオープンソース: ユーザー権限で実行される、依存関係のない小さな単一のバイナリでできている。
ソースコードはGitHubで公開されていて、ライセンスはMITとなっています。
Vimユーザーならば習得は簡単(?)
win-vindの実行ファイルは公式サイトからダウンロードできます。インストーラーファイルを利用してインストールできるほか、Chocolateyやwinget、Scoopといったパッケージマネージャーを利用してインストールすることもできます。
wingetの場合、C:/Program Files/win-vind
にインストールされ、設定やログファイルはC:/Users/*/.win-vind
に作成されます。
$ winget install win-vind
アプリを起動し、タスクトレイにアイコンが表示されれば準備完了です。
win-vindはVimと同様に「モード」の概念を持っていて、モードによって操作方法が異なります。初期状態ではインサートモードとなっており、基本的な操作は通常時と同様に行うことができます。
▲esc-left
(ESCキー押しながら←)やctrl-]
を押すとGUIノーマルモードに移行します。GUIノーマルモードではカーソルやウィンドウをVimバインドで操作することができます(hjklでカーソルを移動したりなど)。この状態でv
キーを押すと、GUIビジュアルモードに移行します。
▲ノーマルモードからはi
キーでインサートモードに戻れます。
モードの移行方法や関係に関しては次のような図で説明されています。
だいたいVimと同じですが、GUIを操作するGUIノーマル/Visualモードとエディタ用のEdiノーマル/Visualモードが存在するところが異なっています。
- GUIノーマル: ウィンドウとマウスカーソルを操作する。デフォルトのバインディングは
esc-left
またはctrl-]
。 - GUI Visual: マウスの左ボタンを押したままアイコンなどのGUIオブジェクトを選択する。デフォルトのバインディングは GUIノーマルモードで
v
。 - Ediノーマル: ウェブページやMicrosoft Office Wordなどの入力フォームでVimをエミュレートする。デフォルトのバインディングは
esc-right
またはctrl-[
。 - Edi Visual: Vimのようにテキストを選択する。Ediノーマルモードで
v
を押す。 - インサート: 基本的な入力操作は従来のWindowsと変わらないが、EasyClickのような特殊な機能が利用可能。デフォルトのバインディングは
i
。 - レジデント: Steamでのゲーム中やVimの使用中にバインディングがショートカットキーと衝突するのを防ぐための退避モード。デフォルトのバインディングは
esc-down
。 - コマンド: Vimのような仮想コマンドラインを画面にオーバーレイして、視覚的にコマンドを実行する。デフォルトのバインディングは
:
。
チュートリアル
具体的な使用例として次のような操作が紹介されています。
ctrl-]
を押してGUIノーマルモードに移行。:!mspaint
と入力しMicrosoftペイントを起動。shift-f shift-f
によりEasyClickを起動。C-wh
C-wl
によりウィンドウを選択。:close
でMicrosoftペイントを終了
カーソルやウィンドウをVim風に操作できるだけでなく、アプリケーションを起動したり、メニュー等のGUI要素をキーで選択できるEasyClickを起動したり、ウィンドウを切り替えたりといった操作が実行可能なことがわかります。
いきなり全ての操作をマスターするのは大変なので、モードの切り替えからはじめ、カーソルの移動など、簡単な操作を徐々に覚えていくようにしていった方がよさそうです。
まとめ
win-vindはWindowsの操作性を改善することができるオープンソースツールです。どこでもVimの快適なキーバインディングを利用したいという方におすすめします。