2012-04-05 2 views
3

Я написал небольшой файл .applescript, который может перезагрузить Safari. Я попытался подключить его выполнение к событию BufWritePost vim (так что Safari автоматически перезагружается при сохранении файла).Интерполировать аргументы функции Vim и команды оболочки

Я поместил это в моем .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 

Как вы можете видеть, я хочу добавить 2 секунды задержки после сохранения файла .scss (чтобы мои SCSS файлы автоматической компиляции к CSS)

Я подтвердил, что единственным недостатком головоломки является мой синтаксис для интерполяции задержки a: с командой оболочки. (Выполнение команды без параметра delay отлично работает).

Что случилось с моим синтаксисом?

+0

Не могли бы вы поделиться своим Apple, сценарий? Звучит неплохо. ;) – Saucier

+0

Извините :(Это было на моем старом рабочем ноутбуке - и я не поддерживал его, потому что я прекратил его использовать. –

ответ

5

Вы можете использовать :exec

exec '!osascript ~/MySrc/applescript/reloadSafari.APPLESCRIPT ' . a:delay 
Смежные вопросы