Appeler une fonction dans la commande` autocmd ' de Vim

je veux utiliser la fonction expand dans un autocmd . En particulier, je suis en train d'adapter un conseil par Paul Biggar et je voulais utiliser la commande automatique suivante dans mon .gvimrc :

autocmd FileType tex set makeprg=rubber-info expand("%:t:r").log

– Qui bien sûr ne fonctionne pas. Donc ce que je veux réellement que cela signifie est que lors de l'ouverture d'un fichier tex , la variable makeprg est définie à la valeur de rubber-info filename.logfilename est le nom du fichier TeX sans son extension de fichier.

Comment puis-je accomplir?

4
demandé sur Community 2009-11-19 23:36:50

2 réponses

vous pouvez essayer quelque chose comme cela; non testé, peut ne pas être exactement juste, mais en utilisant exe est généralement comment je obtiens ce genre de problème.

autocmd FileType tex exe "set makeprg=rubber-info\ " . expand("%:t:r") . ".log"
2
répondu Brian Carper 2009-11-19 20:50:46

l'alternative est de mettre 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 de :let .

2
répondu too much php 2009-11-20 00:44:14