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

初めに

最近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に表示させていました。 しかしこちらは利用規約に反すると怒られたため非公開となりました。

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

@tweet

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

最後に

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


Vim

2020/09/28 00:00