Appeler une fonction dans `la commande autocmd` de Vim
Question
Je veux utiliser la fonction expand
dans un autocmd
. Je suis en particulier, l'adaptation d'un pointe par Paul Biggar et je voulais d'utiliser la commande automatique qui suit dans mon .gvimrc
:
autocmd FileType tex set makeprg=rubber-info\ expand("%:t:r").log
- Ce qui bien sûr ne fonctionne pas. Donc ce que je veux vraiment que cela signifie est que, lors de l'ouverture d'un fichier tex
, la variable makeprg
est réglée sur la valeur de rubber-info filename.log
où filename
est le nom du fichier TeX sans son extension de fichier.
Comment puis-je y arriver?
La solution
Vous pouvez essayer quelque chose comme ça; non testé, ne peut pas être tout à fait exact, mais en utilisant exe
est généralement comment je contourner ce genre de problème.
autocmd FileType tex exe "set makeprg=rubber-info\\ " . expand("%:t:r") . ".log"
Autres conseils
L'alternative consiste à définir makeprg
en utilisant &l:makeprg
:
autocmd FileType tex let &l:makeprg = "rubber-info " . expand("%:t:r") . ".log"
Voir :help let-&
si vous voulez plus d'informations sur les options de paramètres à l'aide :let
.