2012-04-05 92 views
3

我已经写了一个可以重新加载Safari的一个.applescript文件。我试图将它的执行挂钩到vim的BufWritePost事件中,(因此Safari会在文件保存时自动重新加载)。interpolate Vim函数参数和shell命令

我放在这在我的.vimrc:

function! SaveAndReloadSafari(delay) 
    " THIS IS WHERE MY PROBLEM IS>>>>>>>>>>>>>>> 
    !osascript ~/MySrc/applescript/reloadSafari.APPLESCRIPT a:delay 
endfunction 

if !exists("b:my_autocommands_loaded") 
    let b:matts_autocommands_loaded = 1 

    au BufWritePost *.html,*\.css,*.js call SaveAndReloadSafari(0) 
    au BufWritePost *.scss call SaveAndReloadSafari(2) 
endif 

正如你所看到的,我想在保存.scss文件(让我的SCSS文件自动编译后,可以添加2秒延迟到CSS)

我已经证实,唯一缺少的难题是我用shell命令插入a:delay的语法。 (在没有delay参数的情况下执行该命令可以正常工作)。

我的语法有什么问题?

+0

你介意分享您的Apple脚本?听起来不错。 ;) – Saucier 2013-04-14 22:22:32

+0

对不起:(这是我的旧工作笔记本电脑 - 我没有备份它,因为我已经停止使用它。 – 2013-05-07 23:55:03

回答

5

您可以使用:exec

exec '!osascript ~/MySrc/applescript/reloadSafari.APPLESCRIPT ' . a:delay