🦔

iTerm2のファイルパスをRubyMineで開く設定方法

に公開

はじめに

Rubyアプリケーション開発中に、ターミナルでエラーが発生すると、以下のようなスタックトレースが表示されることがよくあります。

NoMethodError:
  undefined method `sub' for nil:NilClass
# /Users/user_name/.rbenv/versions/3.2.7/lib/ruby/gems/3.2.0/gems/action_args-2.7.3/lib/action_args/params_handler.rb:50:in `strengthen_params!'
# /Users/user_name/.rbenv/versions/3.2.7/lib/ruby/gems/3.2.0/gems/action_args-2.7.3/lib/action_args/abstract_controller.rb:20:in `send_action'

これらのファイルパスをいちいちコピーしてRubyMineで開くのは効率が悪いものです。iTerm2の「Semantic History」機能を使えば、ログに表示されるファイルパスをCommandキーを押しながらクリックするだけでRubyMineでそのファイルを直接開くことができます。さらに、行番号も指定することで、エラーが発生した正確な場所にジャンプすることも可能です。

Semantic Historyとは?

iTerm2の「Semantic History」機能は、ターミナル上のテキストからファイルパスや URL を識別し、Commandキーを押しながらクリック時に特定のアクションを実行する機能です。デフォルトでは単純にファイルを開きますが、好みのエディタ(今回はRubyMine)で開くようにカスタマイズできます。

RubyMineで開くための設定手順

1. iTerm2の設定を開く

iTerm2のメニューから「Preferences」(または Cmd + ,)を選択します。

2. Profilesタブへ移動

設定画面上部の「Profiles」タブを選択します。

3. Advanced設定を開く

左サイドバーでプロファイルを選択した状態で、右側の「Advanced」タブをクリックします。

4. Semantic Historyを設定

「Semantic History」セクションで、ドロップダウンメニューから「Run command...」を選択します。

5. コマンドを入力

RubyMineをどのようにインストールしているかによって、入力するコマンドが異なります。

シンプルにファイルを開くだけ

表示されるテキストフィールドに以下のコマンドを入力します:

open -a "RubyMine" "\1"

コマンドの入力例

参考URL:
スタンドアロンインスタンスのランチャー

※行番号付きで開きたい場合は別のスクリプトになります。

(推奨)コマンドラインランチャーを登録して指定

JetBrains Toolboxでインストールしている場合

JetBrains Toolboxを使用している場合は、まずRubyMineのコマンドラインランチャーの場所を確認しましょう。

このパスを使って、以下のコマンドを入力します(行番号付き):

/Users/ユーザー名/Library/Application\ Support/JetBrains/Toolbox/scripts/mine \5 --line \2 \1

注意: パスにスペースが含まれる場合は、\ でエスケープするか、全体を引用符で囲んでください。

6. コマンドの説明

iTerm2のSemantic Historyコマンドでは、以下のプレースホルダが使用できます:

  • \1 - クリックされたファイルのパス
  • \2 - 行番号(あれば)
  • \3 - クリック位置の前のテキスト
  • \4 - クリック位置の後のテキスト
  • \5 - 現在のディレクトリ(pwd)

実際の使用法

設定完了後、エラーが発生した際のスタックトレースや、ターミナルに表示されるファイルパスをCommandキーを押しながらクリック(Cmd+クリック)すると、該当ファイルがRubyMineで開きます。

基本的な使い方

  1. iTerm2でエラーログなどが表示されたとき
  2. ファイルパスの部分で Cmd + クリック
  3. RubyMineが起動し、該当ファイルが開く(行番号も指定されていれば、その行にジャンプ)

動作しない場合のトラブルシューティング

  1. RubyMineのコマンドラインランチャーを確認する

    • RubyMineを開き、「Tools > Create Command-Line Launcher」を実行
    • インストール場所をメモしておく
  2. JetBrains Toolboxの場合のパスを確認

    • Toolboxアプリを開き、RubyMineの設定(歯車アイコン)から「Shell Script」情報を確認

シェルスクリプト情報

/Users/ユーザー名/Library/Application\ Support/JetBrains/Toolbox/scripts/mine
  1. クリックの検出を確認
    • iTerm2では必ず「Command(Cmd)キーを押しながらクリック」する必要がある

簡単な設定方法: Open with editorを使う

iTerm2の最新バージョンでは、「Open with editor...」オプションを使って簡単に設定することもできます。

  1. Semantic Historyドロップダウンから「Open with editor...」を選択
  2. エディタのリストからRubyMineまたはWebStormなどを選択

エディタを選択

まとめ

この設定により、開発作業の効率が大幅に向上します。エラーログやテスト出力から素早くコードにアクセスでき、デバッグ作業がスムーズになります。シンプルながらも非常に便利な機能なので、Ruby開発者であればぜひ設定しておくことをおすすめします。

参考リンク

株式会社Grooves

Discussion