0

我最近在我的 Mac OS 10.6 系统上安装了 jEdit。我希望能够像使用 emacs 一样在终端中运行 jEdit,即“emacs FILE.NAME”。我的计划是编写一个脚本 jedit.sh 包含...

touch $1
open -a /Applications/jEdit.app $1

...其中参数是文件名。奇怪的是,jEdit 被打开但只打开了默认的新文件,而不是所需的文件。如果我用任何其他应用程序替换“jEdit.app”,比如“TextEdit.app”,它会打开所需的文件。

有什么我想念的吗?为什么 jEdit 在与“打开”命令一起使用时的行为不像其他应用程序,我该如何解决这个问题?

4

3 回答 3

2

首先,'open' 不是标准的 UNIX 命令(我假设它是 Mac OS X 特有的?)。

此外,jEdit 是用 Java 编写的,所以我假设 jEdit.app 只是一个启动 Java VM 以执行 jedit.jar 的包装器(它运行/path/to/java -jar /path/to/jedit.jar或类似的东西,可能带有额外的内存使用选项等)。

在我的 Ubuntu 系统上,jedit 包装器脚本传递我在命令行中提到的任何文件,并且 jEdit 有效地使用它,所以问题不在于 jEdit 应用程序本身。

结论:看起来 jEdit.app 没有采用您提供的参数将它们传递给 java 命令行...

作为一种解决方案,请尝试java -jar /path/to/jedit.jar "$@"从您的脚本启动它(AFAIK 也不需要该touch行)。

于 2010-08-25T05:04:04.707 回答
2

这适用于 jEdit 5.1.0:

touch foo
open -a /Applications/jEdit.app foo
于 2014-01-14T18:38:28.540 回答
0

转到实用程序 > 全局选项 > 常规

取消选中启动时恢复以前打开的文件(在此之前,我确保选中了“在命令行中指定的包含文件名...”)

我知道,这很奇怪,但这对我有用(mac os x 雪豹,jedit 4.3.2,java 1.6.0_22)

于 2010-10-21T11:43:19.313 回答