こんにちは、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 を押せばコミット完了!
プッシュ: Command + Shift + K
コミット一覧をコミットメッセージと一緒に確認することができます。
右下の Push でプッシュできます。Push ボタンの右のプルダウンで Force Pushも選べます。
コードジャンプ(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
プロジェクト以下のファイル検索をやってくれます。
検索ヒットしたファイルにジャンプすることができます。
「あのファイル開きたいからあのディレクトリ開いて、開いて、開いて、、、」
面倒だと思います。
ファイル名を記憶しているのであれば検索して一気にジャンプすると楽ですね。
僕はschema.rb
をよく開くのですがプロジェクトのルート→db→schema.rb
と移動がとにかく面倒なので1発検索で開いてますw
ファイル内検索: Command + F
ファイル内の指定した文字列を検索することができます。
全体検索
Command + Shift + F
こいつも強力です。もっと使えるコードジャンプ
でも紹介しましたが、影響範囲の情報を知る上で欠かせないツールです。
やってる内容は指定した文字列がプロジェクト内で使われていたら一覧に表示するだけなのですが検索の仕方によっては強力な武器になります。
例えば、定義したインスタンス変数やメソッドを全体検索すると自分が修正する箇所がどこに影響するのかを知ることができます。先ほどと重複するので割愛しますが、影響範囲を特定することはデバッグに置いて重要なことなのでコードジャンプと合わせて使うとより正確なデバッグができます。
さらに全体検索には他と違う機能があります。
検索結果(画像)右下のOpen in Find Window
を開くことで検索結果をファイルツリーにして表示してくれます。
さらに!画像左下の赤枠のボタンを押すと検索結果一覧をテキストにして表示してくれます。
こいつを丸ごとコピーしてエクセルやGoogleスプレッドシートに貼り付けると影響範囲兼、動作確認チェックシートができたりするので確認の抜け漏れを防いだりするのにすごく便利です。
僕はよくこの要領でチェックシートを作ってたりするのでおすすめです。
ファイル内置換&全体置換
ファイル内置換: Command + R
全体置換: Command + Shift + R
検索方法はCommand + F
やCommand + Shift + F
と同じです。
あとはReplace
を押すだけで置換してくれます。
検索結果を全部一気に置換したいときはReplace All
を使ってみるのもありです。(ただし影響範囲にご注意ください)
こいつは正規表現で検索することができるので一意の文字列ではなくともまとめて検索をヒットさせることができるのである特定の文字列を一気に置換したいときに正規表現で検索をかけると便利だったりします。
僕がseedファイルを修正する時なんかは正規表現でまとめてヒットさせて一気に置換したりしてますw
Railways
これは超便利なプラグインです。RubyMineをご使用されている場合はぜひインストールをお勧めします。
Railwaysは何ができるようになるかですが、bin/rails routes
で表示されるルーティング一覧をさらに見やすく表示してくれるプラグインです。
インストールすると右上にRoutes
というタブが出現してプロジェクトが提供するURLとそれにひもづくControllerのアクションと名前付きパスが表示されます。
さらに上の検索窓でパスを検索することができるので必要なルーティングだけを表示することができます。
プラグインのインストールはPreferences(Command + ,)
のPlugins
でできます。
Database
プロジェクトで使用するデータベースにアクセスすることができます。
アクセスすることでRubyMine上で主に以下の操作をすることができます。
- レコードの作成、更新、削除
- SQL文の実行
何が嬉しいかというと、開発中にあるレコードだけを更新させたいけどブラウザ上でできない or 面倒であるときなんかにコマンドラインで
User.find(1).update(name: 'hoge')
のようにレコードを更新する処理を叩くと思いますがRubyMineでデータベースに接続しておくとエディタ上で全て完結させることができます!
こんな感じ
接続方法が少し難しいので簡単にご紹介します。
エディタの右上にDatabase
というタブが出ていると思うのでクリックして'+ → Data Source → + 今使っているDBの種類
を選択します。
すると次の画像のようなウインドウが表示されますが、初めて設定する場合は訳がわからないかも知れないです。
ですが、複雑な方法でDBにアクセスしているプロジェクトでない限り必要なことは実はそこまで多くありません。
Ruby on Rails
で開発されている方の場合はconfig/database.yml
にそこに入力する内容は揃っているはずです。
ではconfig/database.yml
の情報を使ってDBに接続してみましょう。
以下のウインドウで入力します。
ウインドウのDatabaseの入力蘭に使用しているデータベース名、Userにはusername
の内容、Password
にはpassword
の内容を入力して
Test Connection
をクリックしてDBにテストアクセスをします。上手くいけば緑色でSuccessful
と出るはずで、あとは右下のApply
をクリックして接続完了です!
再度右上のDatabase
タブを開くと接続完了したデータベースが表示されるので▶︎
をクリックして開いていくと自分が作った見覚えのあるテーブル名が並んでいるはずです。
それをクリックすることでデータベースを開くことができます。
レコードの更新はカラムに変更内容を入力してDB
と書いてあるボタンをクリックするだけです
あとは好きな時にデータを作ったり更新したり削除したりできるのでコマンドラインで一回一回メソッドを叩くよりも素早くレコードの変更ができてしまいます。
まとめ
今回ご紹介したものはよく使う機能のみなので是非試してみてください。
RubyMineならではの機能もあるので、せっかくのエディタを最大限活かせるようになると開発スピードも上がるしもっと楽に開発できるようになるはずです。
筆者である僕自身もまだまだ知らない機能もあるのでいろいろ試したいと思います。面白い機能を見つけた時はまた記事にてお会いしましょうw
PR
TECH DRIVE協賛企業のサークルアラウンド株式会社では、プログラマーの成長を加速させるためのトレーニングを行なっています。フロントエンド/バックエンド問わず各種バリエーションがございますので、ご興味がある方は是非以下のリンクより詳細をご覧ください。
Ruby Climbing
週1からはじめられる「Ruby」でWEB開発の基礎が習得できる塾です。現役のプログラミング講師&Rubyエンジニアがプログラミング入門からフレームワーク(Sinatra/Ruby on Rails)を使用した本格的なWEB開発の学習までをしっかりとサポートします。
個別トレーニング
短期間でぐっと成長したい方は弊社主催の個別トレーニングがおすすめです。 トレーニング内容は、受講者の方の課題/要望をお伺いした上で、フルオーダメイドで作成させていただきます。 詳細は以下のリンクよりご確認ください。(応募者多数の場合には時間を別途ご用意する予定です)。