我最近在Mac OS 10.6系统上安装了jEdit。我希望能够在终端中运行jEdit,就像我的emacs,即'emacs FILE.NAME'。我的计划是编写一个包含...
的脚本jedit.shtouch $1
open -a /Applications/jEdit.app $1
...参数是文件名。奇怪的是,jEdit是打开的,但只能使用默认的新文件,而不是所需的文件。如果我将'jEdit.app'替换为任何其他应用程序,例如'TextEdit.app',它会打开所需的文件。
有什么我想念的吗?为什么jEdit在与'open'命令一起使用时不像其他应用程序那样行事,我该如何解决这个问题?
答案 0 :(得分: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
行。)
答案 1 :(得分:2)
这适用于jEdit 5.1.0:
touch foo
open -a /Applications/jEdit.app foo
答案 2 :(得分:0)
转到实用工具>全局选项>一般
取消选中启动时恢复以前打开的文件(在此之前,我确保选中'在命令行中指定的包含文件名...')
我知道,这很奇怪,但这对我有用(mac os x snow leopard,jedit 4.3.2,java 1.6.0_22)