いつのまにかIDEをやめてVimmerになっていた話

この記事は、ミクシィグループ Advent Calendar 2019 - Qiita の21日目の記事です。

こんにちは、こんばんは、おやすみなさい、19新卒の@zu-minです。 普段は、数十万行規模のサービスのサーバエンジニアをしています。 仕事では、Rubyを書いてることが多いです。

アドベントカレンダーに登録してたら、なにか書くこと思いつくだろう!!!という軽いノリで登録したのですが、思いつかなかったので 社会人になったら、いつのまにかIDEを卒業してVimmerになっていた話でも書こうと思います。

(配属されてからのふりかえりでも書こうかなと思ったけど、広報チェック出すのめんどくなったなんて、そんな、そんなことはないです)

移行したきっかけ

もともと使ってたのは、RubyMine (Ruby以外を書く時はIntelliJ) でIDEA Vimと、その他有名所のPluginを入れた構成で数年利用していました。

  • ファイル数多すぎて、ファイルツリーを見ることがなくなった (ファイル数が多すぎて探せない)
  • ぱっと何かしらのファイルを見たいときに、起動に時間がかかる
  • 複数リポジトリのコードを編集することが増えた (何個もIDE開いておくのはつらい)
  • 極力トラックパッドを使わないほうがコーディングしやすいことに気づいた

といったことから、自分のスタイルにはVimが合ってるのでは・・・?と思い始めたのが移行のきっかけです。

移行するにあたってやったこと

移行するにあたって、以下の点は満たさないと移行後につらそうだなぁと思っていました。

  • コードジャンプ
  • ファジー検索
  • 単体テストの実行
  • インデントガイドが表示される
  • ある程度コード補完してくれる

IDEだと、だいたいインストールするだけで利用可能な機能たちですね。 他にもリファクタ系の機能とかも便利ですが、自分はそんなに使わないので省略してます。

各それぞれを解決したPluginや解決策

  • コードジャンプ
    • Ctags
  • ファジー検索
  • 単体テストの実行
  • インデントガイドが表示される
    • vim-indent-guides
  • ある程度コード補完してくれる
    • coc.nvim + coc-tabnine

自分が書いている設定やらなんやらは、一番最後に載せておきます。 (plugin自体の管理はdeinでしています。)

その他には、zshrcに以下のようなfunctionを作って、ag (The Silver Searcher) で検索した結果をVimで開いたり、最近開いたファイル一覧を出しつつ、Vimを開いたり、など色々できるようにしてます。

  function avim() {
    vim -c "Ag! $1"
  }

  function hvim() {
    vim -c "FZFMru!"
  }

gist.github.com