Вызов функции в команде Vim `autocmd`
Вопрос
Я хочу использовать expand
функционировать в autocmd
.В частности, я адаптирую совет Полом Биггаром, и я хотел использовать следующую автоматическую команду в моем .gvimrc
:
autocmd FileType tex set makeprg=rubber-info\ expand("%:t:r").log
– Что, конечно, не работает.Итак, что я на самом деле хочу, чтобы это означало, так это то, что при открытии tex
файл, the makeprg
переменная устанавливается в значение rubber-info filename.log
где filename
это имя файла TeX без его расширения.
Как я могу этого добиться?
Решение
Вы можете попробовать что-то вроде этого;непроверенный, возможно, не совсем правильный, но использующий exe
обычно это то, как я справляюсь с такого рода проблемами.
autocmd FileType tex exe "set makeprg=rubber-info\\ " . expand("%:t:r") . ".log"
Другие советы
Альтернативой является установка makeprg
используя &l:makeprg
:
autocmd FileType tex let &l:makeprg = "rubber-info " . expand("%:t:r") . ".log"
Видишь :help let-&
если вы хотите получить дополнительную информацию о параметрах настройки, используя :let
.