RubyMine が気になる人に捧ぐ、ざっくり入門編

# Develop with pleasure!
全国の RubyMine が気になってる皆様こんにちわ！
IntelliJ IDEA 5 の頃から JetBrains の IDE を愛し続けてる ruzia です。
会社で RubyMine の布教してたら使う人がどんどん増えてるのでニンマリしてる今日この頃です。

最近 RubyMine に興味を持ってくれた人に10分程度でザクッと概要とか使い方を伝える事が増えてきたので、今日はその時話してる内容の一部を抜粋してみます。
ほんとざっくりなので、細かな話は他の方の Advent Calendar をご覧ください！


# はじめに
この記事では、とりあえず RubyMine 使ってみようかな？って思ってる人を対象にコードを書き始めるに当たってこれを知っとくと良いだろうな、という内容をまとめています。
JetBrains 製 IDE の特徴から入って、起動前にすること、起動後に知っておいた方が良いことを広く浅く伝えて、その後深堀りしていくための下地になればいいなーと思っています。


# JetBrains 製 IDE の特徴
まずはじめに、他のエディタから JetBrains 製の IDE に乗り換える際に一番びっくりするであろう特徴から。
JetBrains 製の IDE には、通常のエディタには絶対ついてるとある機能が探しても見つかりません。
それがないとエディタとして話にならないはずなのに、File メニューとかを探しても存在していないものがあります。
それは何か？

　
**なんとセーブがありません**
　

どういうこっちゃ？と思われると思いますが、基本的にすべてのファイルはすべて **全自動** で保存されます。

ファイルを開いて何かを書く、そしたらもう次の瞬間には保存されています。
僕は初めてこの特徴を聞いた時は「なにそれうざい」って思ったんですが、今では保存するとか考えるほうが面倒になってます。

よくよく考えれば、保存しないコードなんて書かないんですよね。
特に LL の場合は顕著で、書いたらすぐに実行して確認するので全自動保存との相性が最高に良いです。
一度慣れてしまうと、わざわざ自分で保存するエディタには戻れなくなりますよ！

　
それ以外だと、ショートカットが非常に豊富であることも特徴ですね。
ショートカットは既に tochi さんがまとめてくれてるので、そちらをどうぞ！

参考：[初めてのRubyMine使いに贈る！これだけは覚えておきたいショートカット](http://qiita.com/tochi/items/1308c8ca830ae97b6dda)

# RubyMine の起動前にするべきこと
というわけで RubyMine が気になってきたと思いますが、まずは起動前にやった方が良いことがあります。
JetBrains 製の IDE は Java で作られているのですが、**デフォルトだとメモリの割り当てが少なめ** になってます。
軽く使うだけなら問題無いのですが、ガチで使い込むには少なすぎるので起動前にメモリの設定をいじると快適に使えるようになります。

参考：https://www.jetbrains.com/ruby/webhelp/tuning-rubymine.html

OS によってファイルの場所などが違いますが、```idea.vmoptions``` に Java VM に渡すオプションが書かれているので、そこの設定をいじることで RubyMine が使えるメモリの使用量を増やす事ができます。

ちなみに僕は

```
-Xms1024m
-Xmx2048m
-XX:MaxPermSize=384m
-XX:+UseCompressedOops
```

こんな設定にしています。

# VIM使いが必ず入れるべき Plugin

jnchito の記事でも出てきてますが、RubyMine（というより JetBrains 製の IDE）には IdeaVIM という VIM のエミュレータプラグインが準備されています。
このプラグインを入れることで RubyMine のエディタ上で VIM エミュレータが有効になり、ある程度の事が本家 VIM のようにできるようになります。
僕の場合は IntelliJ IDEA の頃から無いと生きていけない Plugin の一つになってるので、VIM のキー操作ができないとか死んじゃう・・・って人はぜひ導入を！

参考：https://github.com/JetBrains/ideavim


# rbenv との自動連携
生粋の Ruby 使いの皆さんは「ruby のバージョンは rbenv で管理してるけど、IDE から rbenv とかちゃんと認識してくれんの？なんか面倒くさいんじゃないの？」という疑問をお持ちではないでしょうか。

そんな方にも RubyMine はオススメです！
RubyMine は rbenv で管理している ruby もちゃんと認識してくれます。
しかも、```.ruby-version``` が設置してあるプロジェクトであればそのバージョンを使うように自動的に設定が行われます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/16746/bab6e708-cf80-df93-9929-7fab221c903c.png"/ width='500px'>

こんなかんじで rbenv でインストールされてる ruby が認識されます。
ここで任意のバージョンを利用するように指定することもできるので、1.9.3のこのパッチレベルでちゃんと動くか確認したい、とかいう際もささっと試せます。


# grep のやり方
次に grep のやり方を載せておきます。
今開いてるファイルの中ならば ```command + f``` でファイル内のインクリメンタルサーチが、プロジェクト全体から探したいのであれば ```command + shif + f``` で検索ウインドウが開きます。
ここでは後者の検索に関して、こんな使い方ができるよ、というのを載せておきます。


```command + shift + f``` を押すと以下の様なウインドウが開きます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/16746/b5fd4e9e-cc24-6bd3-457c-fa84b29884b5.png' width='300px'/>

大体は見ての通りで、検索時は正規表現での検索なども行えます。
Scope で検索の対象を指定できるのですが、意外と便利なのが ```Custom``` です。```Custom``` を選択すると以下の様な選択肢が表示されます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/16746/2bb6da8c-d031-5a6a-9501-9c5de4c76778.png' width='250px'/>

なにげに重宝するのが ```Project And Libraries``` で、これを選択すると **```Gemfile.lock``` に記載されているライブラリまで含めて** 検索してくれます。

initializer に出てくる設定項目が ```gem``` の中のどこで読まれてるのか調べたい時とかに威力を発揮します。

# DB との連携
Web アプリ開発してると DB の中身をチェックしたいことってママありますよね。
もちろんコンソールで SQL ガシガシ書いてもいいんですけど、もっとお手軽にテーブルの中身みたり、一部のカラムの値書き換えたりしたいですよね。
そんな時も RubyMine にお任せです！
RubyMine の右側に表示されている ```Databases``` というボタンをクリックするとこんなペインが表示されます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/16746/d9b2e33a-bb98-13f0-282c-7df09f07cbab.png' width='300px'/>

```database.yml``` の内容を元に RubyMine が DB に接続しにいって構造を解析して、その結果をこんな感じでみたり、以下のようにテーブルの中身を表計算的な感じに触ったりすることができます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/16746/4c16c421-bf7c-2214-2281-869e056e9d0f.png' width='500px'/>

もちろん直接 SQL を実行してその結果を見たりすることもできます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/16746/bd53491f-7ba3-4c7a-48ab-f877598e1b4e.png' width='500px'/>

# Web サーバの起動方法
Rails で開発してるなら当然 ```rails s``` したくなりますよね。
RubyMine ではサーバの起動やデバッガを有効にして起動したりするのが簡単にできます！

RubyMine の画面上部に以下の様なアイコン群があるはずです。

<img src='https://qiita-image-store.s3.amazonaws.com/0/16746/dde036e6-1d05-826e-71aa-20b7797f58c4.png' width='250px'/>

一番左のセレクトボックスはデフォルトだとこんな感じで ```Development``` モードのサーバが選択されています。
左側のセレクトボックスで動かしたい対象を、右側のアイコンでどう起動するかを選びます。
アイコンで大体推測がつくと思いますが、左の三角の矢印が通常起動、真ん中の虫っぽいのがデバッガを有効にして起動、最後がコードカバレッジを有効にして起動です。

セレクトボックスの中身には ```spec``` の実行もあったりするので、ここで起動したいものをデバッガを有効にしたりして起動することができます。

# さいごに
とりあえず最初の一歩を踏み出しやすくしようと思ってざざっと書いてみましたがいかがでしょうか？

他にも editor の左側に表示されるアイコンは基本的に全部が **押せる** よとか、リファクタリング機能がめっちゃ便利だよとか、メソッドのオーバーライドしてる時にショートカットで **オーバーライド元に一瞬で飛べるよ** とか色々あるんですが、長くなりすぎるので今回はこの程度にしておきます！
だれもここらへんに触れなかったら、また書こうかなー

　
これをみて RubyMine を触ってみる人が一人でも増えたら嬉しいです。