因此,当我尝试使用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

10-08 17:44