我正在尝试创建一个简单的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一样。
如何让脚本执行此操作?
答案 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