2012-04-05 90 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