RubyMine はじめました ~ From Vim to RubyMine ~

こんにちは、id:eitoball です。

この記事は、Misoca Advent Calendar 2017 の21日目の記事です。

やっと、Amazon.co.jp から、

Echo の招待者に選ばれました。

というメールがきました!もちろん、購入しました。ちょっと早いクリスマスプレゼントです。

はじめに

Misocaの開発環境2017冬Misocaの開発環境 で、

普段どのエディタ/IDEでコード書いてる?

*  (neo)vim

と回答していたのですが、ここ10日間ほど RubyMine を使ってコードを書いています。vim や neovim など vim 系のエディタを20年以上愛用しているのですが、RubyMine でコードを書くようになった経緯を書いていきたいと思います。

実は、6年前から所有していました…

f:id:eitoball:20171220094558p:plain

最初は29ドルとかだったんですね…最初に購入したのは正式リリースの前でセール価格だったと思います。今まで、ろくに使わずにお布施だけしていました…

新しいバージョンが出るたびに使ってみていたのですが、最初は rvm とか rbenv に対応していなかったり、ターミナル上で操作すると同じように git とかの他のツールにアクセスするのが大変だったので、半日程度ですぐ諦めていました。

ヨーヨーでつられた

今年の9月に広島で開催されたRubyKaigi2017 にて、JetBrains さんがスポンサーをしていてブースを出されていました。*1

ヨーヨーももらいにブースへ行った際、「驚愕するデモ」*2に感動して、もう1回使ってみようかなぁという気持ちになりました。単純ですね…

Vim/Neovim に不満はあるのか?

全くないです。Sun OS で vi を使い始め、Vim、そして、Neovim と vi 系のエディタをメインの開発用エディタとして愛用し続けています。プラグインはとても充実しており、基本的な開発は Neovim 上で完結することができます。git などの CLI なプログラムも特に不満無く使うことができています。

ただ、 First 10 minutes of TDD intro episode 1 (unedited)Refactoring in IntelliJ IDEA, Live by Robert C. Martin (Uncle Bob) を見て、Kent Beck や Bob Martin が、さっそうと Eclipse や RubyMineを使いこなしながらリファクタリングしているのを見るとアジャイルな開発者を目指すものとして同じようにモダンな IDE を使いこなせるようになりたいなぁと思い続けてはいました。

RubyMine ことはじめ

いつも諦めるのは普段やっていることと同等なことができないのがもどかしいためだったので、新しい Rails プロジェクトで使ってみることにしました。気をつけたのは、可能な限りショートカットを使って操作することでした。最初は、この "Mastering RubyMine keyboard shortcuts" を読みながら進めるようにしました。この記事で紹介されている Key Promoter X というプラグインはある操作をするときショートカットが使える場合は提案してくれるのでやり直せる場合は元に戻して、提案されたショートカットを使うようにしました。リファレンスカード公式日本語版)は、常に開いていつでも参照できるようにしておきました。

Qiita にて RubyMine のタグから、ショートカット関連の記事を探して参考にさせて頂きました。

まず、使うようにしたショートカット(Mac OS X 10.5+)は以下の3つでした。

  • Shift+Ctrl+A - Find Action... (アクションの見つける…)
  • Ctrl+v - VCS Operations Popup... (バージョン管理の操作のポップアップを表示…)
  • Shift+Command+F Find in Path... (指定したパスから検索する…)

一番、重宝していたのは「Find Action...」です。こういうことがしたいと思ってショートカットが分からないときは、とりあえずこれで探すようにしていました。ここで git fetchgit rebase などの操作が ターミナルに戻らなくても、RubyMine 内でできることを知り、もどかしさが一気になくなりました。

本格導入

このように少しずつ操作を覚えながら、週末に簡単な Rails アプリを作って、一通りの事を RubyMine 上でできるようになったので、仕事での開発でも使うようにしてみました。

まずは、心機一転するため、レポジトリ内の .idea~/Libraries/Application Support/~/Libraries/Preferences 内にある設定ファイルといった関連ファイルを全部、削除して初期状態から使うようにしました。

あと、以下の3点を気をつけたのは以下の3点でした。

spec をショートカットで実行する。

仕事では、テスト駆動開発をするように努めています。テストを常に1キーストロークで実行できるのは、僕にとってとても重要なことです。最初、Alt-Ctrl-R で spec を実行して、同じ spec を実行するときは、 Ctrl-R で実行しています。

IdeaVim プラグインを使わない。

IdeaVim では基本的な Vimキーバインドしか対応していません。僕は、vim-surround や vim-unimpaired、fugitive などのプラグインキーバインドを多用しているので、Vimキーバインドを使っていると反射的にプラグインキーバインドを押してしまうので RubyMine では初期状態で推奨されている Mac OS 10.5+ (Mac OS Xの場合)を使っています。最初は、もどかしさもありましたが、Alt-上矢印 での Extend Selection や Alt-Shift-上下矢印 での Move Line Up/Down などのショートカットを使うようにして、RubyMine での編集方法に慣れていきました。

RubyMine の Terminal を使う。

どうしても、ターミナルでコマンドを実行したいときは、iTerm 2 などターミナルプログラムを開かず、Alt-F12 で内蔵のターミナルを使うようにして、RubyMine からできるだけ離れないようにしました。編集に戻るときには、Shift-Esc や Shift-Command-F12 を使っています。

現在の状況とこれから

現在まで、1週間程度使い続けて、仕事の開発などメインで RubyMine を使っていこうかなぁと思っています。Ctrl-V でのポップアップから作業用のブランチの作成して、Alt-Ctrl-R や Ctrl-R で spec を回して、都度、Command-K でコミットして、最後に Command-Shift-K でレポジトリへのプッシュまで RubyMine で滞りなくできるようになっています。最近はリファクタリング機能やデバッグ機能を積極的に使うようにしています。

Live Edit 機能JavaScript のデバッグ なども試していたいと考えています。Ruby/Rails での開発のほとんどを RubyMine で完結するようにしたいなぁと思っています。


First 10 minutes of TDD intro episode 1 (unedited)


Refactoring in IntelliJ IDEA, Live by Robert C. Martin (Uncle Bob)

*1:ちなみに弊社、株式会社Misoca もスポンサーしていました。

*2:Live Edit 機能のデモを見せて頂きました。