haya14busa

haya14busa’s memo

Vimプラグイン読書会第2回が1/11(土)21:00から開催されます!

第2回 Vimプラグイン読書会 案内

このページでVimプラグイン読書会の情報をまとめています。-> Vimプラグイン読書会

clever-fの紹介

clever-fはその名の通りf{char} による移動を強力にするプラグインです。

fで移動したあと;,の代わりにf , Fでそれそれ順方向、逆方向に移動できるのでキーマップを節約できたり、オプションを設定すれば、行をまたいで移動、smartcase機能、migemo機能などを使うことができます。

使ったことない人は、少しだけ試してから読書会にくると、より見るべき部分がわかって面白いと思うので使ってみるとよさそうです。

;,はあまり頻繁に使用しないせいで何かしらのprefixキーとして潰されてたり、そうでなくてもこれから使えると便利な位置にあるので、オプション設定無しで単にf or Fでリピートさせるという使い方だけでも地味に助かるプラグインだと思います。

個人的には簡単なマクロ使うときにとても重宝しています。(そういう意味では行を跨ぐ機能はOFFにしたほうがいいかなーと最近思ってる。オプションでちゃんと設定できます)

見どころ(個人的に)

前回のjunkfile.vimやvisualstar.vimよりも少し大きくなってちょっと実践度があがるのかなと思います。(helperスクリプトようにファイルを分けたりも前回はしていなかった気もするし)

カーソルキーの位置、状態によってキーの挙動をかえてる

どうやって実装してるのか、こういうところはkana/vim-submodeと似たようなところがあるのかな?ないのかな?とか他にも応用できないかとか、いろいろ考えられそう。(これはvim-submode読まないとわからないけど。あとたぶん違う実装方な気がする)

他にも行跨ぐ機能とか気になるところを重点的によんだりすると良さげ

.によるオペレーションのリピート対応

カーソル移動系プラグインではこれがあるのとないのとではランクがひとつ、ふたつ違うってほど重要事項だとおもうのでこのへんのノウハウはぜひ読みたい。

ちなみにeasymotionでは対応できていないし、同じくfを拡張して2キー対応しているvim-sneakは2キーの場合はリピートできるけど1キーだとできないという現状だったりします。(あとtpope/vim-repeat依存だったり)

migemo対応時のマルチバイト対応など

clever-fとかあんまり使わないというひとでもこういう細かいところは他の場面でも使えるので、汎用的な部分があれば積極的にみていくと良さげ感あります。clever-fに限った話じゃないですが。

Vim scriptでもテストを書きたい

テストの書き方とか参考にしたいなとか個人的に思ってるけど、clever-fの場合はvim-vspecだけでなく、rhysd/vim-vspec-matchersを使っててさらに拡張していたりするので、そのへん見たり見なかったりするのもよさげ。

2キー対応拡張したい

justinmk/vim-sneakのように2キー(or 複数キー)対応ができれば更に便利になるので余裕があれば複数キーに対応するにはどうやって実装すればいいかなーとか考えると面白いと思います。

最後に

ぜひ参加してわいわい読みましょう。

今回参加できなくてもまだゆるゆると続くと思うので、Vimプラグイン読書会に更新情報を載せたりしますので時間あるときに参加しましょう。日時もなんとなく土曜21:00となっているけど、他の時間帯がいいという人が多ければ変えれると思うので意見していくときっといいです。

Comments