插值Vim函数参数和Shell命令

3
我写了一个小的.applescript文件,可以重新加载Safari。我试图将它的执行钩入到vim的BufWritePost事件中(因此在保存文件时Safari会自动重新加载)。
我把这个放在我的.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文件后添加2秒延迟(以便我的SCSS文件自动编译为CSS)。

我确认缺失的那部分是使用shell命令内插a:delay的语法。(没有delay参数执行该命令可以正常工作)。

我的语法有什么问题吗?


你介意分享你的Apple Script吗?听起来不错。;) - Saucier
抱歉:(那是我以前的工作笔记本电脑--因为我已经停止使用它,所以没有备份。 - Matt H.
1个回答

5
您可以使用:exec命令。
exec '!osascript ~/MySrc/applescript/reloadSafari.APPLESCRIPT ' . a:delay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接