2010-02-02 5 views
3

Как бы я хотел установить все .rb-файлы или все .py-файлы для открытия в emacs, если я их дважды щелкнул; скажем, с рабочего стола?Открыть файл непосредственно в 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 

Но если я перетащить файл (text.py - просто печатает строку) на нем, я получаю: Emacs: стандартный ввод не терминал

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

Спасибо!

EDIT: решаемые с гиперссылкой: 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 
+0

Я думаю, что это будет принадлежать superuser.com –

+0

Причина, по которой я его не публиковал, я предполагаю, что это будет связано с сценарием bash, который кажется мне SO-y. Но переместите его, если он не принадлежит! – Isaac

+0

В идеальном мире он пойдет туда. К сожалению, мне еще предстоит работать в среде, где разработчикам не нужно было устанавливать сами emacs (или, более вероятно, использовать какой-то неполный редактор .... и * нравится *). –

ответ

3

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

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

EDIT: Обратитесь к этому recent answer за один способ создания приложения Launcher AppleScript: просто измените команду оболочки, чтобы вместо этого вызвать emacs.

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

 launch application "Terminal" 
     tell application "Terminal" 
      do script "cd '" & base & "';" & " emacs " & fname 
     end tell 
+0

Проблема здесь в том, что я использую терминал - если бы все было так просто, я бы это сделал! – Isaac

+0

@ Исаак Медь. В вашем вопросе вы упомянули щелчок по файлу, чтобы открыть его. Как вы это делаете в терминале? – chollida

+0

Как я уже сказал в вопросе - я дважды щелкаю с рабочего стола. – Isaac

1

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

This previous SO question содержит некоторые сведения о том, как это сделать при настройке мультитач. Возможно, некоторые из них применимы?

Смежные вопросы