🐷

Vimのw連打が疲れるので横移動のツールを作りました。

2023/11/07に公開


https://github.com/yuxki/vim-quickw
だいぶ前に作成したVimのPluginの話ですが、アウトプットの練習と宣伝も兼ねて記事にしてみました。

ツール作成のきっかけ

Vimを使い始めたころ、横移動をおこなうため、wやらWb,B、などを連打するのが、結構疲れるなと思ったため、ツールを自作して解決しようとおもいました。

ツールの目標

検索機能などを使えば事足りる、みたいなのも面白くありません。なので、目標は最短2キーで行きたい地点にカーソルをあてられることにしました。

参考にしたツールと利用した機能

ブラウザにVimiumというツールがあり、押したキーによってブラウザが操作できる点が参考にできると思いました。そこで、Vimのポップアップを利用することで、同じようなことができると思い、これを採用しました。
https://vimium.github.io/

作成したツールの機能

コマンドを実行すると、現在のラインの直下にポップアップを表示して、移動できる単語の場所に、キーを表示できるようにしました。キーを押すと、その単語の位置に移動します。
小文字入力だと単語の先頭、大文字入力(+shift)だと、単語の末尾に移動するようにしました。

工夫したところ、苦労したところ

VimのWindowを分割したり、Gitの変更などの表示でカラムの位置が変化すると、ポップアップの位置がずれることに苦労したのですが、VimにおけるWindowの持つ情報をしらべて、駆使することでなんとか分割画面に対応できました。
更に、ツールの機能に集中するためにポップアップキーメニューのAPIを作成して、メインのプラグインのコードを簡略化しました。
https://github.com/yuxki/vim-pkm-api

おすすめの使い方

以下のようなコマンドを、vimrcに追加して、コマンドをキーにバインドする使い方をおすすめします。

nmap <silent> W :Quickw<CR>

Discussion