Vim初めて2年間つくったVimプラグインを振り返る

公開:2020/09/29
更新:2020/10/22
6 min読了の目安(約5400字TECH技術記事
Likes14

初めに

最近zenn.devでVimプラグイン周りの記事がいくつか投稿されています。

せっかくだし、2018年の8月ころからVimを使い始めて2年くらい経ったので、これまで作成したVimプラグインを時系列で振り返ってみます。

初めてのプラグイン

Vim触り始めて数ヵ月のベイビーVimmerの状態だったが、すっかりVimにハマっていたので、自分でも何かプラグインを作りたいと思っていました。
ちょうどVimのセッション機能を知ったし、これチョット使いやすくできるかもと思って作ったのがvsessionです。

初のプラグイン開発ですので、 こちらの記事を参考に作っていましたが、
plugin、autoload、開発フロー周りがよくわからず困っていた記憶があります。
ただ、思ったよりも難しくなかったので、意外とこんなもんかって思ったりしました。

翻訳プラグイン

英語苦手なのでよくGoogle翻訳を使っていましたが、Vim上でGoogle翻訳できたら便利と思って、プラグインを作り始めました。
このころpopup window機能が入ったので、オシャレだし新機能だから試してみようと、翻訳したメッセージをpopup windowで表示させていました。

popup window周りをいろいろといじっていたのが記憶に残っています。

電車乗換案内プラグイン

ある日突然Vimで電車乗り換えを検索できたら便利と思い作りました。

しくみはシンプルに、Yahoo!乗換案内をスクレイピングした情報をpopup windowに表示させていました。
しかしこちらは利用規約に反すると怒られたため非公開となりました。

利用規約、ダイジ、ゼッタイ。

Bad Apple!!

このころは、何でもかんでもVimで何かをやろうと思っていました。VimでBad Apple!!を流せたら良いなと思って作ったのがbadapple.vimです。
業務中にひっそり懐かしいBad Apple!!を見れたらやる気も出て効率上がるんじゃないかなという狙いでしたが、結局一度も業務中で使用することはありませんでした。

dockerを操作するプラグイン

普段の開発でdockerの操作を自作のdocuiを使っていたが、
画面分割してからdocuiを起動するまでの操作による時間ロスが気になっていました。
ですので、Vimでサクッと操作できるdockerを操作できるプラグインを作りました。

このプラグインはこれまで一番頑張ったもので、便利そうと思った機能もたくさん実装しました。
でも実際使っているのはコンテナの起動、停止、アタッチ、イメージのpullと削除くらいです。
ほかにも高機能(CPU、MEM使用率をリアルタイムで表示するなど)がありますが、ほぼ使っていないので無駄な高機能になってしまいました。

必要な機能だけ実装して、需要や要望があれば実装、というのが良いんだろうなと今になって思います。

タピオカプラグイン

このころ、世の中ではタピオカブームで、せっかくなのでVimでタピオカを量産するプラグインを作りました。
残念ながら実務で使用することはついぞありませんでした。

コードを画像化するプラグイン

普段、社内チャットでやSNSでサンプルコードを貼ったりしますが、
コードシンタックスが使えないのでとても不便でした。

一番理想ですので、Vimで書いたコードをそのまま選択して画像化、そしてクリップボードにコピーすることです。
それができるcode2imgを作り、Vimから使えるようcode2img.vimを作りしました。

うれしいことでcode2imgはMOONGIFTで紹介されました。

GitHubを操作できるプラグイン

今年に入って仕事でGitHubを使うようになってブラウザでの作業がだいぶ増えました。
issue作成、確認、コメント、PR作成、レビューなどができます。

ブラウザでの作業が増えるということは必然的にVimを触る時間が減るということですので、Vimmerとしてはあまりうれしくないことです。
そこで、できるだけVimで作業できるようにgh.vimを作りました。

できたてホヤホヤのプラグインですが、普段の作業の6割くらいはVimできるようになったので、一安心しています。

時系列まとめ

他にも解説していないプラグインがいくつかありますが、時系列にまとめるとこうなりました。
こうやってみると、今年入ってからプラグインを作っている回数が減りましたね。
個人的に2年間でこれしか作っていないのかという気持ちです。

日時 プラグイン名 説明
2018/12/21 vsession セッションのプラグイン
2019/05/06 translate.vim Google翻訳
2019/06/16 train.vim 電車乗換案内(非公開)
2019/06/19 docker.vim Dockerのコンテナ、イメージなどの操作
2019/06/21 weather.vim 天気予報(非公開)
2019/07/20 badapple.vim Bad Apple!!を再生
2019/08/17 generatedir.vim プロジェクトレイアウトを生成
2019/09/26 docker-compose.vim docker-composeのラッパ
2019/10/05 say.vim Macのplayのラッパ
2019/11/10 popupfiles.vim popup windowを使ったファイルセレクタ
2019/11/13 tapioca.vim 文字を打つとタピオカになる
2020/01/08 preview-markdown.vim Markdownのプレビュー
2020/03/03 google-map.vim Google Mapsのルート検索ができる
2020/08/02 code2img.vim 選択した範囲のコードを画像にしてクリップボードにコピー
2020/09/06 gh.vim GitHubのissueやPR、リポジトリなどを操作できる

最後に

いくつかはお遊びプラグインですが、業務で役に立っているプラグインもあって、作ってよかったなと思っています。
これからも、Vimに引きこもって生活できるようにプラグインを作っていきます。