从Applescript打开MacVim

从Applescript打开MacVim,applescript,macvim,Applescript,Macvim,我试图创建一个简单的Applescript,每次单击Finder工具栏上的按钮时都会激活它。此脚本打开MacVim,工作目录设置为查找器所在的目录。这是我得到的最接近的 on run tell application "Finder" to get folder of the front window as string set workingDir to POSIX path of result do shell script "cd \"" & working

我试图创建一个简单的Applescript,每次单击Finder工具栏上的按钮时都会激活它。此脚本打开MacVim,工作目录设置为查找器所在的目录。这是我得到的最接近的

on run
    tell application "Finder" to get folder of the front window as string
    set workingDir to POSIX path of result
    do shell script "cd \"" & workingDir & "\"; /usr/local/bin/mvim"
end run
这非常有效(mvim自动将MacVim的工作目录设置为cwd)。然而,由于某些原因,这只起作用一次。它会在沙滩上玩一会儿,如果我再按一下按钮,什么也不会发生。我本来希望得到另一个空白的MacVim窗口——就像我在终端中再次键入mvim一样


如何使用脚本执行此操作?

下一个调用beachball,因为第一个尚未完成

为了能够对applescript进程进行后台处理,它必须没有悬空输出,因此,请将
do shell脚本
行更改为:

do shell script "cd \"" & workingDir & "\"; /usr/local/bin/mvim > /dev/null 2>&1"

它应该可以做到这一点。

这将在MacVim中打开选定的文件/文件夹。
仅当在Finder中选择单个项目时有效。使用Finder中选择的多个项目

如前所述,我使用“open-a”来克服mvim脚本在选项卡中打开多个文件的限制


只是简单的澄清一下。如果您只想打开从to Finder到MacVim的目录,您可以右键单击该文件夹,然后单击此处的New MacVim buffer。只需点击两下。啊,这是值得知道的。这适用于当前文件夹下的文件夹,但对于当前文件夹本身,这适用于哪些链接/引用并不明显(它适用于底部的面包屑痕迹,但不适用于我放置在左侧面板中的快捷方式,例如),它适用,但我不确定原因。据我所知,这会将SDTERR和STDIN重定向到bitbucket,但
mvim
脚本不会生成任何输出。最后,我还尝试使用
&
将过程背景化,但这不起作用-原因是什么?好吧,即使mvim已经将自身背景化,并且不生成任何输出,但它获取2个文件描述符的事实足以让Applescript猜不出它将永远不会生成任何输出。因此,您需要显式地释放文件描述符……我改进了答案,现在它可以一起打开多个文件。
on run
    tell application "Finder" to set selectedFiles to selection
    if selectedFiles is {} then return    
    set filePathPosix to ""
    repeat with filePath in selectedFiles
        set filePathPosix to filePathPosix & "'" & POSIX path of (filePath as alias) & "' "
    end repeat
    do shell script "open -a MacVim " & filePathPosix & " > /dev/null 2>&1"
end run