因此,当我尝试使用Automator服务打开新的emacs(带有spacemacs的GNU版本25.2)缓冲区时,出现了一些非常奇怪的行为。
在我的终端中,命令emacsclient -a '' -c
可以按预期工作,并通过emacsclient打开了一个新缓冲区。但是,当我在Automator中提供仅运行(/bin/bash
)Shell脚本的服务时:emacsclient -a '' -c
我收到一条错误消息:The action “Run Shell Script” encountered an error: “emacsclient: could not get terminal name”
怀疑这是由于Automator没有使用一些默认的PATH
变量引起的,我尝试了以下操作:PATH=/usr/local/bin:$PATHemacsclient -c
产生了与以前相同的错误。
接下来我尝试了PATH=/usr/bin:/usr/local/bin export PATH;emacsclient -c
产生了不同的错误消息:The action “Run Shell Script” encountered an error: “emacsclient: invalid option -- cTry `emacsclient --help' for more information”
但是为什么我要在终端中尝试该脚本,它也给出了类似的错误,对我来说意义不大。
如果有人对如何解决此问题提出建议,我将不胜感激。
最佳答案
问题是shell脚本在/usr/bin中运行了emacsclient的旧版本,您需要在Emacs.app/Contents/MacOS/bin/emacsclient中运行一个旧版本的emacsclient。删除PATH行,您可以使用此处列出的解决方案在automator Running a macOS service for open with emacs failed with "emacsclient: could not get terminal name mac"中运行emacsclient