glowshi-ft.vimでストレスフリーな横移動を実現する

皆さんこんばんわ。
そろそろ梅雨も明けたでしょうか。
海開き、山開きの時期を迎え、いよいよ本格的な夏の到来となりました。
熱中症などにはくれぐれもお気をつけて、素敵なvim活をお過ごし下さい。

本日は自作プラギンの紹介をしたいと思います。
本当はmomonga.vim #3の頃にはあらかた出来ていたのですが、中途半端な状態から怒涛の放置が続いてしまいました。
最近ようやく落ち着いてきたので記事にしてみたいと思います。

vimの横移動について

皆さんはvimでどういう横移動をしていますか?
h/l?w/b?
私はやっぱりf/tが好きです。
f{char}と入力することで直近の{char}に移動できるアレです。

ただ一つ気に入らない点があって、同一行に対象の文字が複数あった場合に目的の位置に一発で移動しづらいっていう問題があります。
2faとすれば2個目のaに移動できるものの個数を数えるという作業が入るし、数えた末に間違えてた日にゃあキーボード叩き潰したろか、とか思ってしまうわけです。

最近は横移動のプラグインも出揃ってきているので色々使ったりしていましたが、自分にもいいアイデアが浮かんだので形にしてみることにしました。

glowshi-ft.vimを使う

saihoooooooo/glowshi-ft.vim

https://github.com/saihoooooooo/glowshi-ft.vim

glowshi-ftとはglow shift(光る移動)とftの動きを改善したという意味を込めて名付けました。
gif動画を作ったので、見てもらうと動きがわかりやすいかと思います。

http://gifzo.net/JEJkjm4LKP.gif

  • 基本的な挙動はf/tと同じ
  • 対象が複数存在する場合はそれぞれの位置がハイライトされ自由に移動することができる
  • 移動にはhまたはlを使用
  • エンターキーやタイムアウトで位置を確定

といった特徴を持っています。

glowshi-ft.vimのいいところ

では個人的glowshi-ft.vimのいいところベスト3を発表したいと思います。

其ノ壱.vimmerに優しい操作性

前述の通り、対象文字間の移動にはh/lが使えるのでこれ以上ない直感的な操作が可能です。
気づいたらエクセルがhjklで埋め尽くされているアナタも安心。
ストレスフリーです。

其ノ弐.移動と同時にキー入力

候補を移動中に操作できるキーはh/lのようにいくつか用意されていますが、それ以外の用途が割り当てられていないキーを押すと入力時点での位置に移動を確定しつつ、そのキーを入力した状態に移行します。
たとえばある候補の上でiを押せば移動後に即インサートモードになり、またある候補の上でdを押せば入力待ち状態になるため続けてiwと押すことでテキストオブジェクトでの削除が行えます。
これはストレスフリー。

其ノ参.ビジュアルモードやオペレータと合わせてどうぞ

もちろんビジュアルモードやオペレータにも対応しているのでvf{char}lyとかdF{char}hh<Enter>といった操作も可能です。
うーんストレスフリー。

またここでは紹介していない機能(そんなに大したものはないですが)もあるので気になった方はgithubやドキュメントをご覧ください。

最後に

glowshi-ft.vimは絶賛人柱募集中です。
興味が沸いた方は是非使ってみてください。
問題を発見したら容赦なくissuesをくださると大変助かります。

それでは、よいvimライフを!