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に自動コンパイルできるようにするため)

パズルの唯一の欠落部分は、シェルコマンドでa:delayを補間するための構文であることを確認しました。(パラメーターなしでコマンドを実行すると正常にdelay機能します)。

私の構文の何が問題になっていますか?

4

1 に答える 1

5

使用できます:exec

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