Как открыть файл EMACS в OS X, дважды щелкнув по нему, используя команду `emacsclient`?

Я хочу открыть файл режима орг, выбранный в Finder, дважды щелкнув по нему. Но так как я использую Emacs в режиме демона, я хочу использовать emacsclient Команда для этого.

Таким образом, основная идея заключалась в том, чтобы обернуть команду emacsclient -c posixPathToFile в приложении AppleScript, чтобы открыть его.

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"

Теперь выберите файл и щелкните правой кнопкой мыши и вызовите Сервис> "Открыть в Emacs" и откройте файл.

Что не так с первым подходом?

1 ответ

Хорошо, я решил свою проблему. Проблема связана с моим неправильным пониманием разницы между ScriptEditor и Automator. Если я использую Automator для создания приложения и использую предыдущий сценарий вместо создания приложения с использованием ScriptEditor, то он работает как положено.

Можно упростить процесс, создав приложение в Automator и запустив сценарий оболочки вместо переноса команды в Ascript.

Автоматизатор сценариев оболочки

Другие вопросы по тегам