4

I want to use the expand function in an autocmd. In particular, I am adapting a tip by Paul Biggar and I wanted to use the following auto command in my .gvimrc:

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

– Which of course doesn’t work. So what I actually want this to mean is that upon opening a tex file, the makeprg variable is set to the value of rubber-info filename.log where filename is the name of the TeX file without its file extension.

How can I accomplish this?

Community
  • 1
  • 1
Konrad Rudolph
  • 530,221
  • 131
  • 937
  • 1,214

2 Answers2

3

You can try something like this; untested, may not be exactly right, but using exe is generally how I get around this kind of problem.

autocmd FileType tex exe "set makeprg=rubber-info\\ " . expand("%:t:r") . ".log"
Brian Carper
  • 71,150
  • 28
  • 166
  • 168
2

The alternative is to set makeprg using &l:makeprg:

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

See :help let-& if you want more information about settings options using :let.

too much php
  • 88,666
  • 34
  • 128
  • 138