[:contents]

  • はじめに  Vimは非常に高性能なエディタである一方、使いこなすために多くの時間を要します。Vimを使い始めると、他のエディタでとてつも無くストレスを感じ、文字を打てば文章内に:wなどが散らばったりします。これは、Vimのキーバインディングを施すソフトが、多数存在する理由の一つでもあります。

 Windowsにおける統合的なキーバインディングツールと言えば、AutoHotKeyという有名なものがあります。AutoHotKeyは、独自のスクリプトであるAHK Scriptを利用してWindowsのAPIを呼び出し、キーイベントを起こすことでバインドを行います。しかし、AHK Scriptをイチから学習するコストは高く、Vimのコマンドラインやモード管理を再現しきれているものは多くありません。そこで、今回は導入コストやパフォーマンスの面を考え、Vimのキーバインディングを施す専用のツールを作りました。

  • win-vind  このツールは、WindowsにGUI操作用のモードを追加し、Vimを利用しているときのちょっとしたウィンドウ操作をキーボードに手を置いたまま行うことを目的としています。主な機能として、GUI操作、プロセス制御、Vimエミュレート、Vimライクなモード管理、コマンドラインからの利用などがあります。そして、設定用のGUIは英語と日本語、ドキュメントは英語に対応しています。GitHubとホームページは以下を参照してください。 [https://github.com/pit-ray/win-vind:embed:cite]

[https://pit-ray.github.io/win-vind/:embed:cite]

また、次のリンクからダウンロードできます。 [https://pit-ray.github.io/win-vind/downloads/:embed:cite]

現在はWindows10のみをサポートしており、MITライセンスを採用しています。

** GUI操作  ウィンドウのリサイズや選択、マウスの移動やクリック、仮想デスクトップの切替、UIオブジェクトの検出など、とりわけ多くのファンクションがあります。デフォルトの設定では、マウスをhjklで操作できたり、VimiumやEasyMotionのような方式でクリックを行えます。

EasyClick Demo

因みに、この機能はUI Automationをサポートしていれば動作するため、Microsoft Edgeなどのリンクも認識できます。

** Vimのエミュレーション
 この機能は、メモ帳やOffice Word、WebのフォームなどでVimのキーバインディングを利用するためのものです。

Vim Emulation Demo

** モード管理  デフォルトでは、GUIを操作するためのモードと、Vimをエミュレートするための2層のモードから構成されています。内部的には、それぞれのモードは独立したものであるため、設定から好きなモードだけを利用したり、キーコンフィグを行うことも可能です。

GUI Mode and Editor Mode
Mode Overview

** プロセス制御  プロセス制御と題していますが、大層なものではなく、現在はプロセスの起動しか行えません。例えば、メモ帳をnotepadコマンドとして登録しておくと、仮想コマンドラインを用いて、次のように起動できます。

Start External Application Demo

実行可能なファイルであればどんなものでも登録でき、数に限りはありません。

** Vimとの連携
 win-vindは複数起動ができないようになっており、起動中のwin-vindに対して、二つ目のwin-vindから一意のファンクションIDを渡すことで、そのファンクションをワンショットで呼び出すことができます。

|sh| $ ./win-vind.exe –func change_to_normal ||< したがって、Vimの:!コマンドと組み合わせることで、VimからGUIを操作したり、win-vindへスムーズに切り替えることができます。実装されている機能は、ホームページの[https://pit-ray.github.io/win-vind/cheat_sheet/:title=チートシート]から一覧することができます。

  • 最後に  以上のように、win-vindを利用することで、Vimのキーバインディング機能を一括して導入することができます。しかしながら、AutoHotKeyを利用するメリットも多くあるため、一つの選択肢としていただけると幸いです。