Open file on IntelliJ from iTerm 2

IntelliJ has a command line features that you can check out here:

https://www.jetbrains.com/help/idea/2016.2/working-with-intellij-idea-features-from-command-line.html

iTerm as well enable launch a command line order when we use cmd and click over a file path pattern.

You only have to go to iTerm Preferences, Profiles, Advanced, Semantic History

iTerm configuration

In Semantic History check "Run Comand.." and add as a command:

/Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea  \1 --line \2

IntelliJ has to be in the current project. You can enforce a project:

/Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea <project_path> \1 --line \2

or event use \5 as a project path, \5 is a pwd in the current terminal directory.

I had better results with the first configuration.

Note: with IntelliJ Idea 2019.1 i used: /Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea --line \2 \1


I move to pycharm, and I am currently using this line:

/Applications/PyCharm.app/Contents/MacOS/pycharm  \1 --line \2

The accepted answer didn't quite work for me. I ended up using:

open -a "IntelliJ IDEA" \1

I can confirm the following command is working with or without line numbers, when entered into iTerm2 > Preferences > Profiles > Advanced > Semantic History > Run Command:

 [ -z \2 ] && /usr/local/bin/idea \1 || /usr/local/bin/idea --line \2 \1

This makes use of the fact that IntelliJ IDEA installs a command line launcher python script idea to /usr/local/bin, and requires the project in which the file resides to be open (multiple projects can be open, and it will still find the correct one.)

The command checks to see if the line number argument \2 is blank; if it is, it will exclude the line number, otherwise it will specify it with --line. \1 is the filename including the path.

To see all the available options for idea:

/usr/local/bin/idea --help

Environment:

  • iTerm2 3.1.7
  • IntelliJ IDEA CE 2018.1.5
  • macOS High Sierra 10.13.4