vimがIDEやモダンエディタより優れているところ

toyama satoshi
4 min readDec 4, 2015

結論としては、vimは端末上で動くという点で、IDEやモダンエディタにはない柔軟性、拡張性があり優れていると思う。端末上で動くということはemacsにも言えるが、僕はたまたま最初に出会ったエディタがvimだったので、vim視点で語ろうと思う。

僕は社会人になると同時にvimを使い始めた。これまでにIDEやモダンエディタに乗り換えを試みたものの、2日と持たずしてvimに戻ってしまう。

その理由は、使い慣れたキーバインドやプラグインが使えないことだと思っていたが、そうではないことに最近気がついた。最も大きな原因は、僕が業務を行うためにエディタに求める要件がIDEやモダンエディタでは満たされていないことだった。

レガシーでも成果をあげるサービスを支える技術

僕が仕事で関わっているサービスは、サービスを支える技術水準が高い方ではないと思っている。それは「何を作るか」が最も重要で「どう作るか」については、リスクの検証は慎重に行うものの最先端である必要はないと考えているからだ。とはいえ、技術的負債が膨らみ続けるのを放ってはおけないのだが、なかなか動き出せておらず、一般的にレガシーと呼ばれるような環境で開発をしている。

モダンな開発現場の紹介記事を目にすると、Githubを使ってコードレビューとか、Chefを使ったインフラのコード化などに憧れる。ただ、本心としては、提供しているサービスの成果は確実に出ているので、いつの日かできたらいいのだろうなくらいに考えている。

このような環境で仕事をしているとほぼ全ての業務に端末が必要になる。例えば、WEBサーバの設定変更が必要になった場合は、複数台のサーバにsshでログインし、設定ファイルを編集のうえサービスをリスタートする。

ちなみに、WEBサーバの設定ファイルはバージョン管理していて、普段は直接変更することはない。ただ、障害発生時などで緊急対応が必要な場合はtmuxを使って、20台程度のサーバの設定を一度に変更したりする。

この時に必要になるのが、端末上で動作するエディタだ。この分野では、vimとemacsが2大勢力だと思うが、どういうわけか僕はvimを選んだ。

tmuxとvimを使って、開発と運用のスイッチングコストの省力化を実現できた

サーバの設定変更は稀なケースだが、インフラやアプリケーションの運用をしていると、多かれ少なかれ問題が発生し、ほぼ毎日サーバにログインしている。

一方で新機能やバグ修正を並行して進める必要がある。最初は開発にIDE(Eclipse)を使い、サーバにログインする時は端末を立ち上げていた。

この環境は、非常にストレスが強かった。端末とIDEを行き来することと、vimとIDEを行き来することの2重のストレスがあった。これを解決したくて試行錯誤し、tmuxとvimを使って開発も運用もこの中でやり切るようにした。その結果、開発と運用を並行しながらでもロスを少なく、速度を上げることができたと思う。

エディタの中で端末を動かすのではなく、端末の中でエディタを動かしたい

端末を使用する方法としては、モダンエディタでもプラグインを使えばエディタの中でで端末を使用できると思う。ただその場合、端末内で起動するエディタが異なる(atomを使用しながら、端末ではvimを使用する)のでどうしても操作に差異が発生する。

差異そのものは、矩形選択の仕方が少し違ったり、複数行への行頭挿入が出来るか出来ないかなど、他人が聞くと些末なものが多いかもしれないが、僕には手癖になっているものなので、かなりストレスを感じる。

だから今の開発環境が続く限り、僕は端末内で動作するエディタしか使わないと思う。モダンエディタに比べvimやemacsは劣っているところは多いと思うが、こういう観点では優れていると思うし、もっとみんな使えばいいと思う。

--

--