【问题标题】:command line IntelliJ on Mac OS XMac OS X 上的命令行 IntelliJ
【发布时间】:2011-12-11 19:08:37
【问题描述】:

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

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)
...

【问题讨论】:

    标签: macos intellij-idea


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      试试:

      工具 > 创建命令行启动器

      这将创建一个命令行启动器。 之后,您可以使用以下命令从所需文件夹启动 IntelliJ:

      idea .
      

      idea <path to the folder>
      

      【讨论】:

        【解决方案3】:

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

        另一个选项是创建命令行启动器:工具 |创建命令行启动器。

        如果您使用Toolbox,它提供了自动创建命令启动器的方法。

        【讨论】:

        • 更好 - 没有许可证问题,但它仍然给我同样的错误(现在在一个对话框中):错误显示差异:com/intellij/openapi/fileEditor/@NotNull 参数的参数 0 impl/FileEditorProviderManagerImpl.getProviders 不能为空
        • 所以这适用于差异,但我想调用合并功能(能够在解决冲突后保存)。这可行吗?
        • 不,还不能合并,请投票给youtrack.jetbrains.net/issue/IDEA-69292
        • 设置是什么,因此您可以使用以下命令从任何目录启动它:idea.
        • 有没有办法通过命令行功能而不是 Intellij 的新实例在新选项卡中打开文件?
        【解决方案4】:

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

        idea .
        

        【讨论】:

        • 向已有答案的旧问题添加答案时,解释为什么您的答案不同是很有用的。您能否编辑您的答案以解释它与 Meeh 的答案有何不同,以及您的答案如何解决问题的不同部分?
        • 太棒了,应该是答案
        【解决方案5】:

        Idea 期望路径是完全限定的,所以我编写了一个小帮助脚本。像这样调用:

        $ idiff foo.txt bar.txt
        

        idiff的代码:

        #!/bin/bash
        idea='/Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea'
        left=`abspath $1`
        right=`abspath $2`
        "$idea" diff $left $right
        

        在某处可能有一个真正的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
        

        【讨论】:

          【解决方案6】:

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

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

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

          【讨论】:

          • 但需要登录您的 JetBrains 帐户!
          • 我需要重新启动工具箱才能看到 IDE 级别设置。
          猜你喜欢
          • 2011-03-31
          • 2010-12-31
          • 1970-01-01
          • 2010-11-07
          • 1970-01-01
          • 1970-01-01
          • 2014-09-13
          • 1970-01-01
          相关资源
          最近更新 更多