从Applescript打开MacVim

时间:2011-11-21 14:51:07

标签: applescript macvim

我正在尝试创建一个简单的Applescript,每次单击Finder工具栏上的按钮时都会激活该Applescript。此脚本打开MacVim,其工作目录设置为Finder所在的目录。这跟我一样接近......

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一样。

如何让脚本执行此操作?

2 个答案:

答案 0 :(得分:4)

下一个叫沙滩球,因为第一个没有完成。

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

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

它应该可以解决问题。

答案 1 :(得分:4)

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

我使用'open -a'来克服mvim脚本限制,在标签中打开多个文件,如here所述

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