読者です 読者をやめる 読者になる 読者になる

Vim-EasyMotion 始めました

vim

つぶやき



背景

ここ数週間、どうもneocompleteの調子が悪く、動作条件は揃っているはずなのに(というか以前は使えていたのに)、やれVimのバージョンを上げろ、luaをインストールしろ、という警告が出てきて困った。

実際にはVimは最新のバージョンを使っており、かつluaも入っているので、自分がなにか奇妙な設定をしているのだろうとは思ったものの、いくら検索して同様の症状や対策を探しても出てこない。

仕方なくVimやMacVim-KaoriYa版を何度かlua付きで再インストールしてみるものの、やはりとくに変わりなく(インストール先のパス設定ミスとかでもなく)、結局あれこれやる中でKaoriYa版ではないMacVimに切り替えたら動作するようになったので、しばらくこれで我慢するか……と思ったものの、やはりところどころで不便……と思ってあらためてKaoriYa版にしたら以前のとおりneocompleteが動くようになった。

想像するに、これはもうプラグインやMacVimの問題ということではなく、ぼくが今使ってるMacが古くて(OSは最新だけどマシンが)その不具合の一環なのだろう、と考えているところ*1*2

で、そこまでは背景で、上記の試行錯誤の最中に以下の記事を見つけて。
qiita.com

初めはただneocompleteの設定確認というか、復習のようなつもりで読んでいたのだけど、いろいろ「聞いたことはあるけど何をするのかは知らないプラグイン」が紹介されていて、面白そうだなあ、と徒然にvimrcに設定していった中でもとくに印象深かったのが掲題の vim-easymotion だった。
github.com

導入

プラグインの説明としては、レポジトリのREADMEおよび現・開発者のはやぶささんによる以下の記事3本が必要なことほとんどすべてを語ってる。(更新順に列記)

haya14busa.com
haya14busa.com
haya14busa.com

それにしてもこれらはやぶささんのブログ記事、どれも面白い。とくに最後の。かなり笑った。

さて同プラグイン、ざっと見た上でのありがちな第一印象というか、反応としてはとりあえず機能(マッピングや設定法)が豊富すぎてついていけない、と思われるかもしれないのだけど(というか私、圧倒されました。というのも合わせ技的に紹介されているプラグインも未使用のものばかりだったので……)、上ではミニマムなお勧め設定などもしっかり紹介されているので、とりあえず導入する、ということ自体は決して難しくないと思う。

とはいえREADMEも含めて、統合された機能一覧というか、設定できるマッピングの種類が全部列記された場所、というのは無さそうで、少なくともぼくの場合は上記のブログ記事やREADMEを何度も行ったり来たりしながら自分の環境・都合に合わせて設定していったので、それはそれで結構時間がかかった。

追記訂正

ドキュメント、というか機能一覧、ちゃんとありました。
vim-easymotion/easymotion.txt at master · easymotion/vim-easymotion · GitHub

最近、上記の流れでVimプラグインを追いかけることが増えたのだけど、その中でルート下のdocディレクトリにドキュメントを入れる作法(というか)があることにおぼろげに気づき、それで「あ、もしかして……」と思ったらあったという……。あ、というかこれもしかして、ヘルプに出てくるテキスト? でしょうか。そういう構造になってるのか……?

ともあれ、ひとまず網羅的な情報についてはこちらを見れば良さそうでした。
(追記ここまで)

で、その末にようやく、「とりあえずこれでしばらくやってみよう」みたいのに着地したのだけど、たぶんこれどう考えてもまたここ数日のうちに(仕事で使う中で)バリバリ調整していくと思うので、現時点ではまだvimrcさらしとかはしないでおきます。

Vimのつらみ

ところで、そのようにvimrcやプラグインの設定で時間をかけるの、ぼくは楽しんでやっているけれど、中にはちょっとそういうのはNGというか、拒否感というか、つらみを感じる人がいるであろうことも今回いろいろやる中であらためてよくわかった。

以下の記事の前半でそれに似たことが書かれているけど、
メインの開発ツールをVimからRubyMineに変更した理由 - Qiita

自分はこの方ほどの経験はないながらも、結構その辺の感じ、わかる〜と思った。キリがなく感じられるというか……。

ただそうは言っても、自分の場合はその一方で、なにか問題にぶつかると解決するまで付き合ってみたくなるクセみたいのがあって、かつVimの設定はそういう探究心を尽きさせないところがなぜかあるので、性格とか相性とか人生上のタイミングとかにもよるのかな……という気もするけれど。

あと、こういう設定系を延々やってしまうの、本人の中ではそれが解決した時のことを先取りするように結構ありありと想像&実感できているからやってしまう部分もあって、もしそういう想像力が働かなかったら自分でもやってない。

つまり今回もこれ、面白そうというか、うまく機能したらこんなにイイコトあるぞ、という期待がだいぶ現実的に想像できたからそれなりにやったのかなあ、と。

副産物

今回の設定に際しては、いろいろなVimの基礎知識を新たに理解する必要があり(たとえば「Leader」って何だ?トカ)、今までとくに知らなくても済んだそういう知見を副産物的にゲットできたのは良かった。

さらには最初に紹介したQiitaのお勧めプラグイン紹介記事の中で出てきたプラグインもいろいろこの流れで設定して、率直に言ってかなり楽しい。やばい。ライフチェインジング。いや、効率が上がってるかはわかりませんが、単に面白い。

エディタをいじって喜んでると、「そのエディタで何を書く(作る)かが問題でしょう?いつまで道具いじってんの?」と思われるかもしれないけど(というか自分でそう突っ込んでる)、でもカメラや楽器を趣味にしてる人だって、それら道具で何を作るかよりも道具そのものを研究して楽しんでるところはあるだろうし、それと同様に道具を触ること自体が目的になったって何も問題はない。
(仕事を後回しにして道具の設定に時間を割いていたら問題だけどそれは仕事をしてないことが問題なのであって別の話)

幸いぼくは仕事を進める上でVimを使っているから「Vim力(りょく)を上げることで仕事の効率もアップするのですよ!」と言おうと思えば言えるけど(理解してくれる関係者がいるとも思わないが)、本当は別にそれが目的なのではなくて単にVim力を上げること自体が目的になっているようで、それはそれで面白い。

ということで、vim-easymotionを導入した旨、ひとまず記録してみました。
第一印象としては、新鮮な挙動ばかりでただ動かしてるだけでも楽しい。ということに尽きるけど、しばらく使ってみてまた続報というか新たな感想が出てきたら報告したいと思います。

おまけ

いま使っているところ。

f:id:note103:20160201003100g:plain

*1:ひとつ考えられる原因として、不調に気づく少し前から「enable_at_startup」を有効にしていたので、そのせいなのかな……とも思ったけど、単に常時起動することによって不挙動に気づきやすくなっただけとも思われ、結局その辺の関係も含めて何もわからない。

*2:その後、ふと「Software Design」の2015年1月号Vim特集を読んでいたら、冒頭の入門編記事で「MacVim KaoriYaは少々バージョンが古かったりLua連携などの一部の機能が使えない」と書いてあるのを見つけた。もしかしてそもそもKaoriYa版ではLua連携は使えなくても文句言えない感じなのだろうか。