Mac OS X上的命令行IntelliJ

MK.*_*MK. 32 macos intellij-idea

我正在尝试在Mac OS X的命令行上启动IntelliJ以使用它的diff工具.理论上idea.sh diff file1 file2应该工作.在实践中,该文件存在一些问题,我认为我已经解决了这个问题(删除了一些readlink等参数).
但是当它开始,它要我输入许可证信息(即使的IntelliJ的实例已经运行和许可证是存在的).这让我相信Mac OS X上的命令行界与非命令行界有某种分离?真的吗?
此外,当我选择30天eval时,它继续给我以下例外:

java.lang.IllegalArgumentException: Argument 0 for @NotNull parameter of com/intellij/openapi/fileEditor/impl/FileEditorProviderManagerImpl.getProviders must not be null
    at com.intellij.openapi.fileEditor.impl.FileEditorProviderManagerImpl.getProviders(FileEditorProviderManagerImpl.java)
    at com.intellij.openapi.diff.impl.highlighting.EditorPlaceHolder.setContent(EditorPlaceHolder.java:73)
    at com.intellij.openapi.diff.impl.highlighting.DiffPanelState$1.run(DiffPanelState.java:38)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:864)
...
Run Code Online (Sandbox Code Playgroud)

Mee*_*eeh 121

IntelliJ可以为您安装命令行启动程序,将其添加到PATH目录将使其与系统上的任何其他命令一样.命令是"想法".

IntelliJ命令行启动器


Cra*_*der 24

尝试运行/Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea.idea.sh不是为Mac设计的,如果没有一些手动更改将无法工作.


R K*_*jal 20

尝试:

工具>创建命令行启动器

这将创建一个命令行启动器.之后,您可以从所需的文件夹启动IntelliJ,就像这样的命令:

idea .
Run Code Online (Sandbox Code Playgroud)

要么

idea <path to the folder>
Run Code Online (Sandbox Code Playgroud)


arc*_*don 9

如果您安装了工具箱,现在可以使用工具箱应用程序设置进行控制。

首先启用使用(全局)工具箱应用程序设置:

在此输入图像描述

现在,您可以在 IDE 级别启用(此处使用 Intellij):

在此输入图像描述


小智 7

第一步,您将遵循并单击菜单>工具>创建命令行启动器,然后在 要打开项目目录的目录上运行此命令。

idea .
Run Code Online (Sandbox Code Playgroud)

  • 在已经有答案的较旧问题中添加答案时,解释您的答案为何不同的做法很有用。您可以编辑答案以解释它与Meeh的答案有何不同,以及您的答案如何解决问题的差异部分? (3认同)

And*_*w E 6

Idea希望路径完全合格,所以我写了一个小帮手脚本.调用如:

$ idiff foo.txt bar.txt
Run Code Online (Sandbox Code Playgroud)

代码idiff:

#!/bin/bash
idea='/Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea'
left=`abspath $1`
right=`abspath $2`
"$idea" diff $left $right
Run Code Online (Sandbox Code Playgroud)

abspath某个地方可能有一个真正的工具,但我有一个简单的手工卷制工具:

$ cat `which abspath`
#!/bin/bash
ORIG_DIR=`pwd`
for fn in $* ; do 
  if [ -e $fn ]; then
    d=`dirname $fn`
    if [ -z $d ]; then 
      echo `pwd`/$fn
    else
      cd $d
      echo `pwd`"/"`basename $fn`
    fi
  else
    echo "Don't know how to process $fn" 1>&2
    exit 1
  fi
  cd $ORIG_DIR
done
Run Code Online (Sandbox Code Playgroud)