Откройте файл напрямую в emacs (двойным щелчком мыши) - PullRequest
3 голосов
/ 02 февраля 2010

Как мне настроить все файлы .rb или все файлы .py для открытия в emacs, если я дважды щелкну по ним;скажем, с рабочего стола?

Я на OS X 10.6.2.

У меня есть скрипт:

on open of finderObjects
    repeat with currFile in finderObjects
        set unixPath to POSIX path of currFile

        set base to do shell script "dirname " & unixPath
        set fname to do shell script "basename " & unixPath
        do shell script "cd '" & base & "';" & " emacs  " & fname

    end repeat
end open

Но если я перетащу файл.py - просто печатает строку) на ней я получаю: emacs: стандартный ввод не tty

И я не уверен, как решить эту проблему.

Спасибо!

РЕДАКТИРОВАТЬ: Решено с ссылкой: http://www.macosxhints.com/article.php?story=20031027142625782

set filecount to 0

on open filelist
    repeat with i in filelist
        set filecount to 1
        tell application "Terminal"
            set filename to do shell script ¬
                "perl -e \"print quotemeta ('" & POSIX path of i & "');\""
            do script "emacs " & filename & "; exit"
        end tell
    end repeat
end open

if filecount < 1 then
    tell application "Terminal"
        do script "emacs; exit"
    end tell
end if

Ответы [ 2 ]

3 голосов
/ 02 февраля 2010

Для каждого типа выберите файл в Finder, выберите Get Info в меню «Файл».В открывшемся информационном окне в разделе Open with выберите приложение emacs, которое вы используете (и это должна быть версия приложения), а затем нажмите Change All...

Если вы используете традиционныйпроклиная emacs из командной строки, вы можете создать небольшое приложение AppleScript в действии ScriptEditor или Automator, которое получит файлы из искателя и откроет с ними emacs.Затем используйте Get Info, чтобы связать приложение с файлами .rb и .py.

РЕДАКТИРОВАТЬ: см. Этот недавний ответ для одного способа создания приложения для запуска AppleScript: просто измените команду оболочкивместо этого вызывать emacs.

ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: ваш скрипт почти готов, но вам нужно запустить его под Terminal.app.Попробуйте изменить его так:

        launch application "Terminal"
        tell application "Terminal"
            do script "cd '" & base & "';" & " emacs  " & fname
        end tell
1 голос
/ 02 февраля 2010

Я не эксперт по OS X, но если emacs существует как в Unix и Windows, у него должна быть утилита emacsclient для подачи новых файлов в уже запущенный сеанс emacs.

Этот предыдущий вопрос SO содержит некоторые подробности о том, как это сделать на множественной установке.Возможно, что-то из этого применимо?

...