RubyMine便利機能のご紹介

こんにちは、TECH DRIVEのTedです。

今回はRubyMineが持っている便利な機能についてご紹介したいと思います。

弊社ではメンバー全員がRubyMineを使って開発を行なっています。

先日、RubyMineの機能をどこまで引き出せているかを会話したのですが、意外とメンバー間で持ち合わせている知識にバラツキがあることに気がつきました。

会話の中ではお互い「なるほど」「それクールだw」等、良い知識の交換会になりました。

RubyMineは有料のエディタなので、お使いになられていない方は「ほうほう、こんな感じなのか」と若干でもRubyMineの感じを知って頂ければと思います。

*弊社ではソースコードの管理にGitを使用しており、その前提でのご紹介となりますのでご了承ください。

ご紹介機能一覧

どれも強力ですが、★は取り分け強力で超便利機能

  • 機能検索機能(Find Action)★
  • コミット(Commit)
  • プッシュ(Push)
  • コードジャンプ1(Forward, Back)
  • コードジャンプ2(Declaration) ★
  • 全体検索(Find in Path) ★
  • ファイル内検索(Find)
  • 全体ファイル検索 ★
  • ファイル内置換(Replace)
  • 全体置換(Replace in Path)
  • Railways ★
  • Database ★

アクション検索機能

Command + Shift + A

RubyMineで使用できる機能を検索することができます。この機能でご紹介機能一覧の()の文字で検索すると各機能にヒットするはずです。

キーバインドを設定したけど、「何を押せば・・・」みたいにバインドを忘れた時なんかや、直感的に検索すると使いたい機能がヒットすることもあります。

例えば、RubyMineからGit操作を行う場合、branch newとかで検索するとブランチを作ってくれる機能がヒットしたりします。

これがあればどんな機能でも探して実行できるので超便利です。

コミット&プッシュ

コミット: Command + K

Gitのコミットメッセージや差分を1つのウインドウで操作することができます。コマンドラインでやらなくて良いので結構楽になります。

右下の Commit を押せばコミット完了!

f:id:travy:20190412111530p:plain

プッシュ: Command + Shift + K

コミット一覧をコミットメッセージと一緒に確認することができます。

右下の Push でプッシュできます。Push ボタンの右のプルダウンで Force Pushも選べます。

f:id:travy:20190412111855p:plain

コードジャンプ(Forward, Back)

ツールバー NavigateのForward,Back, Declarationを呼び出す方法です。

使うと自分が作業していた前後のファイルへジャンプできます。

Forward: Option + Command + →

Back : Option + Command + ←

もっと使えるコードジャンプ(Declaration)

Command + B

こいつは使えます!これを使いこなせると開発やデバックやコードリーディングのスピードが段違いにUpすること間違いなしです。

  • 自分で定義した変数やメソッドにジャンプ
  • ViewからControllerやModelにジャンプ
  • Gemが提供しているメソッドにジャンプ
  • レンダリングでしてしているファイルへジャンプ
  • メソッドを使用している箇所へジャンプ

とにかくファイルを超えて定義元や対象のファイルへジャンプすることができます。

困ったときには Command + B でジャンプしまくると良いでしょう。

最後の、メソッドを使用している箇所へジャンプを利用した応用テクニックがあります。

メソッドの定義元で Command + B をすると使用している箇所の一覧が表示されます。

こうすることで、メソッド自体を修正するときに影響範囲を明確にすることができます。

デバッグ作業をしている時なんかに、メソッドのロジック自体に問題があるので迂闊に修正をかけると思わぬところでバグが出たり挙動が変わってしまった、みたいなことが発生することがあります。

しかし、このコードジャンプをマスターしていれば修正する前に影響範囲を探ることができます。

修正したいメソッドの影響範囲が大きすぎる場合、対象のメソッドを修正した後の大量の動作確認がもれなくついて来て時間が無駄に過ぎてしまいます。

なので別のメソッドを作ってしまう等、別の方法で開発を進めることができるかもしれません。

コードジャンプはファイル移動を楽にするだけでなくて上等な検索手段であり、プロジェクト内の情報収拾の強力な道具になります!

検索機能

ファイル検索: Command + Shift + O

f:id:travy:20190412121553p:plain

プロジェクト以下のファイル検索をやってくれます。

検索ヒットしたファイルにジャンプすることができます。

「あのファイル開きたいからあのディレクトリ開いて、開いて、開いて、、、」

面倒だと思います。

ファイル名を記憶しているのであれば検索して一気にジャンプすると楽ですね。

僕はschema.rbをよく開くのですがプロジェクトのルート→db→schema.rbと移動がとにかく面倒なので1発検索で開いてますw

ファイル内検索: Command + F

ファイル内の指定した文字列を検索することができます。

全体検索

Command + Shift + F

f:id:travy:20190412123242p:plain

こいつも強力です。もっと使えるコードジャンプでも紹介しましたが、影響範囲の情報を知る上で欠かせないツールです。

やってる内容は指定した文字列がプロジェクト内で使われていたら一覧に表示するだけなのですが検索の仕方によっては強力な武器になります。

例えば、定義したインスタンス変数やメソッドを全体検索すると自分が修正する箇所がどこに影響するのかを知ることができます。先ほどと重複するので割愛しますが、影響範囲を特定することはデバッグに置いて重要なことなのでコードジャンプと合わせて使うとより正確なデバッグができます。

さらに全体検索には他と違う機能があります。

検索結果(画像)右下のOpen in Find Windowを開くことで検索結果をファイルツリーにして表示してくれます。

f:id:travy:20190412124321p:plain

さらに!画像左下の赤枠のボタンを押すと検索結果一覧をテキストにして表示してくれます。

f:id:travy:20190412124450p:plain

こいつを丸ごとコピーしてエクセルやGoogleスプレッドシートに貼り付けると影響範囲兼、動作確認チェックシートができたりするので確認の抜け漏れを防いだりするのにすごく便利です。

僕はよくこの要領でチェックシートを作ってたりするのでおすすめです。

ファイル内置換&全体置換

ファイル内置換: Command + R

全体置換: Command + Shift + R

検索方法はCommand + FCommand + Shift + Fと同じです。

あとはReplaceを押すだけで置換してくれます。

検索結果を全部一気に置換したいときはReplace Allを使ってみるのもありです。(ただし影響範囲にご注意ください)

こいつは正規表現で検索することができるので一意の文字列ではなくともまとめて検索をヒットさせることができるのである特定の文字列を一気に置換したいときに正規表現で検索をかけると便利だったりします。

僕がseedファイルを修正する時なんかは正規表現でまとめてヒットさせて一気に置換したりしてますw

Railways

これは超便利なプラグインです。RubyMineをご使用されている場合はぜひインストールをお勧めします。

Railwaysは何ができるようになるかですが、bin/rails routesで表示されるルーティング一覧をさらに見やすく表示してくれるプラグインです。

インストールすると右上にRoutesというタブが出現してプロジェクトが提供するURLとそれにひもづくControllerのアクションと名前付きパスが表示されます。

さらに上の検索窓でパスを検索することができるので必要なルーティングだけを表示することができます。

f:id:travy:20190412143651p:plain

プラグインのインストールはPreferences(Command + ,)Pluginsでできます。

Database

プロジェクトで使用するデータベースにアクセスすることができます。

アクセスすることでRubyMine上で主に以下の操作をすることができます。

  • レコードの作成、更新、削除
  • SQL文の実行

何が嬉しいかというと、開発中にあるレコードだけを更新させたいけどブラウザ上でできない or 面倒であるときなんかにコマンドラインで

User.find(1).update(name: 'hoge')

のようにレコードを更新する処理を叩くと思いますがRubyMineでデータベースに接続しておくとエディタ上で全て完結させることができます!

こんな感じ

f:id:travy:20190412145235p:plain

接続方法が少し難しいので簡単にご紹介します。

エディタの右上にDatabaseというタブが出ていると思うのでクリックして'+ → Data Source → + 今使っているDBの種類を選択します。

f:id:travy:20190412145651p:plain

すると次の画像のようなウインドウが表示されますが、初めて設定する場合は訳がわからないかも知れないです。

ですが、複雑な方法でDBにアクセスしているプロジェクトでない限り必要なことは実はそこまで多くありません。

Ruby on Railsで開発されている方の場合はconfig/database.ymlにそこに入力する内容は揃っているはずです。

ではconfig/database.ymlの情報を使ってDBに接続してみましょう。

以下のウインドウで入力します。

f:id:travy:20190419124002p:plain

ウインドウのDatabaseの入力蘭に使用しているデータベース名、Userにはusernameの内容、Passwordにはpasswordの内容を入力して

Test ConnectionをクリックしてDBにテストアクセスをします。上手くいけば緑色でSuccessfulと出るはずで、あとは右下のApplyをクリックして接続完了です!

再度右上のDatabaseタブを開くと接続完了したデータベースが表示されるので▶︎をクリックして開いていくと自分が作った見覚えのあるテーブル名が並んでいるはずです。

それをクリックすることでデータベースを開くことができます。

f:id:travy:20190412151430p:plain

レコードの更新はカラムに変更内容を入力してDBと書いてあるボタンをクリックするだけです

あとは好きな時にデータを作ったり更新したり削除したりできるのでコマンドラインで一回一回メソッドを叩くよりも素早くレコードの変更ができてしまいます。

f:id:travy:20190412151845p:plain

まとめ

今回ご紹介したものはよく使う機能のみなので是非試してみてください。

RubyMineならではの機能もあるので、せっかくのエディタを最大限活かせるようになると開発スピードも上がるしもっと楽に開発できるようになるはずです。

筆者である僕自身もまだまだ知らない機能もあるのでいろいろ試したいと思います。面白い機能を見つけた時はまた記事にてお会いしましょうw

PR

TECH DRIVE協賛企業のサークルアラウンド株式会社では、プログラマーの成長を加速させるためのトレーニングを行なっています。フロントエンド/バックエンド問わず各種バリエーションがございますので、ご興味がある方は是非以下のリンクより詳細をご覧ください。

Ruby Climbing

週1からはじめられる「Ruby」でWEB開発の基礎が習得できる塾です。現役のプログラミング講師&Rubyエンジニアがプログラミング入門からフレームワーク(Sinatra/Ruby on Rails)を使用した本格的なWEB開発の学習までをしっかりとサポートします。

ruby climbing

個別トレーニング

短期間でぐっと成長したい方は弊社主催の個別トレーニングがおすすめです。 トレーニング内容は、受講者の方の課題/要望をお伺いした上で、フルオーダメイドで作成させていただきます。 詳細は以下のリンクよりご確認ください。(応募者多数の場合には時間を別途ご用意する予定です)。

WEBプログラミング個別トレーニング

TECH DRIVEについて

TECH DRIVEは「技術者の成長を加速させる」をキーワードに都内で活動をしているコミュニティです。
TwitterやFacebookにて技術ネタやイベント情報の発信を行っていますので、ご興味があれば、いいねやフォローをお願いいたします。