3

我编写了一个可以重新加载 Safari 的小 .applescript 文件。我试图将它的执行挂钩到 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参数的命令可以正常工作)。

我的语法有什么问题?

4

1 回答 1

5

您可以使用:exec

exec '!osascript ~/MySrc/applescript/reloadSafari.APPLESCRIPT ' . a:delay
于 2012-04-05T21:59:22.630 回答