如果我双击它们,我将如何设置所有.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
但是如果我拖动一个文件(text.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
答案 0 :(得分:3)
对于每种类型,在Finder中选择一个文件,从“文件”菜单中选择Get Info
。在打开的信息窗口中,在Open with
部分下,选择您正在使用的emacs应用(并且必须是应用版本),然后按Change All..
。
如果您使用命令行中的传统curses emacs,您可以在ScriptEditor或Automator操作中构建一个小AppleScript应用程序,该应用程序将从finder接收文件并打开emacs。然后使用Get Info
将应用与.rb和.py文件相关联。
编辑:有关创建AppleScript启动器应用的一种方法,请参阅此recent answer:只需修改shell命令即可调用emacs。
进一步编辑:您的脚本几乎就在那里,但您需要在Terminal.app
下运行脚本。尝试修改它:
launch application "Terminal"
tell application "Terminal"
do script "cd '" & base & "';" & " emacs " & fname
end tell
答案 1 :(得分:1)
我不是OS X专家,但如果emacs就像在Unix和Windows上那样它应该有一个emacsclient实用程序,用于将新文件提供给已经运行的emacs会话。
This previous SO question有一些关于如何在多重设置上执行此操作的详细信息。也许其中一些适用?