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

初めてのVimプラグイン開発とMUGENUPエンジニアのエディタ事情

初めまして!MUGENUPアルバイトの倉成です。こちらで書く初めての記事として、今回は僕が初めて作ったVimプラグインMUGENUPエンジニアのエディタ事情について紹介しようと思います。

僕自身はMUGENUPでアルバイトを始めてから、Emacs, SublimeText, RubyMineといろいろなエディタに手を出していましたが、現在はVimに落ち着いています。

もちろん、それぞれのエディタには一長一短があり「他で出来たことがこっちでは出来ない」というようなことはよくありますよね。

後置記法を支援するプラグイン

そんな中でも、RubyMineを使っていた時に便利だと思った「bodyが1行のif, unless, while, until文を後置記法に変換する*1」ことがVimではできず、軽く調べてもプラグインが見つからなかったので、自分で作ってみることにしました*2

f:id:mgnup:20140730202756g:plain

Github: https://github.com/kuranari-tm/backend_if

内部の処理は比較的簡単で、カーソル行が一行化・複数行化できるかを判定し、もし変換可能であれば正規表現等を使って置換を行っています。

このプラグインif cond thenのようにthenが入っているとうまく動かなかったり、コードを整形するのにnormal! 2k3==と強引なことをやっていたりと、不十分な部分は多いのですが、普段の開発で使えるプラグインを開発できたのが何よりの成果でした。便利なプラグインを使うのももちろんよいですが、自給自足で必要な物を作る楽しみは何物にも代えがたいですよね。

if文の一行化・複数行化はよく行うと思うので、if文を後置化するのにddkPJ==jddなどしている方、ぜひこのbackend_ifsplitjoinを使ってみてください!

MUGENUPエンジニアのエディタ事情

さてさて、エンジニア同士の会話で「エディタ何使っていますか?」というのは鉄板ネタだと思うので、MUGENUPエンジニアのエディタ事情について少し紹介します。

現在MUGENUPでは8人のエンジニアで開発をしているのですが、使用エディタは

と圧倒的にSublime Textが人気です。

確かに、新人さんやIDEしか使ったことがない人がメンバーに加わる時には「とりあえずSublime使ってみよう!」ってなりますもんね。 学習コストが比較的低い割に、高機能で拡張性もあり、とてもよいエディタだと思います。

ということでSublime勢の勢力に押され、社内でVimを使っているのは少数派となってしまっているのですが、サーバー設定の場面などではVim(Vi)が使えたほうが何かと便利だったりするので、これからも少しずつ良さを広めていけたらなと思います。

おわりに

今回は僕が初めて作ったプラグインの紹介、そしてMUGENUPエンジニア陣のエディタ事情について書かせていただきました。

if文を一行化・複数行化する機能は初めてのプラグイン開発にちょうどいい難易度に感じたのでEmacsSublime textなど他のエディタを使っている方も同様なプラグインを作ってみてはいかがでしょうか。

GithubへのPull Requestもお待ちしています!

*1:RubyMineでは後置記法が可能な文を複数行で書いていると、警告とともに1行化するボタンが表示されていました。警告を出すこと自体はRubyMine以外のエディタでもRubocopを使用することで可能です。

*2:実は後からしっかり調べたらsplitjoinというプラグインが見つかりました、各種言語に対応しているので実際に使うならこちらのほうがオススメです。