如何使用`emacsclient`命令双击OS X中的EMACS文件?

时间:2017-08-07 14:04:15

标签: macos emacs automator emacsclient

我想通过双击打开在 Finder 中选择的组织模式文件。但是因为我在 daemon-mode 中使用Emacs,所以我想使用emacsclient命令。

因此,主要的想法是将命令emacsclient -c posixPathToFile包装在AppleScript App 中以打开它。

tell application "Finder"
    set fileAlias to the selection as alias
    set fileName to name of fileAlias
    set posixPath to POSIX path of fileAlias
end tell

-- tell application "Emacs" to activate

try
    do shell script "/usr/local/bin/emacsclient -c " & quoted form of posixPath
end try

我知道不需要一些set命令。我们假设此脚本保存为Xemacs.app,并且我将此应用与始终打开的.org文件相关联。

使用此应用程序无法通过双击文件来工作,而是在我在Finder中选择文件然后单独调用 Xemacs.app 。为什么?我对AppleScript没有足够的信心来弄清楚会发生什么。

因此解决方法是使用Automator服务

  on run {input, parameters}

    set posixPath to POSIX path of input


    tell application "iTerm" to do shell script "/usr/local/bin/emacsclient -c " & quoted form of posixPath

    return input

end run

该服务保存为'在Emacs中打开

现在选择一个文件并右键单击并调用callig服务> "在Emacs中开放"工作并打开文件。

第一种方法有什么问题?

1 个答案:

答案 0 :(得分:0)

好的,我解决了我的问题。问题来自于我对 ScriptEditor Automator 之间差异的误解。如果我使用Automator创建应用程序并使用以前的脚本而不是使用ScriptEditor创建应用程序,那么它将按预期工作。

可以通过在Automator中创建App并运行shell脚本而不是在Ascript中包装命令来简化该过程。

shell script Automator