Chame uma função no comando `AutoCmd` do Vim
Pergunta
Eu quero usar o expand
função em um autocmd
. Em particular, estou adaptando um gorjeta por Paul Biggar e eu queríamos usar o seguinte comando automático no meu .gvimrc
:
autocmd FileType tex set makeprg=rubber-info\ expand("%:t:r").log
- O que obviamente não funciona. Então, o que eu realmente quero que isso signifique é que, ao abrir um tex
arquivo, o makeprg
A variável é definida para o valor de rubber-info filename.log
Onde filename
é o nome do arquivo tex sem sua extensão de arquivo.
Como posso fazer isso?
Solução
Você pode tentar algo assim; não testado, pode não estar exatamente certo, mas usando exe
Geralmente é assim que eu contorno esse tipo de problema.
autocmd FileType tex exe "set makeprg=rubber-info\\ " . expand("%:t:r") . ".log"
Outras dicas
A alternativa é definir makeprg
usando &l:makeprg
:
autocmd FileType tex let &l:makeprg = "rubber-info " . expand("%:t:r") . ".log"
Ver :help let-&
Se você quiser mais informações sobre as opções de configurações usando :let
.