Chiamare una funzione al comando autocmd` di Vim `
Domanda
Voglio usare la funzione expand
in un autocmd
. In particolare, sto adattando un punta da Paul Biggar e volevo utilizzare il seguente comando automatico nel mio .gvimrc
:
autocmd FileType tex set makeprg=rubber-info\ expand("%:t:r").log
- Che ovviamente non funziona. Quindi quello che in realtà voglio che questo significa è che dopo l'apertura di un file tex
, la variabile makeprg
è impostata al valore della rubber-info filename.log
dove filename
è il nome del file di TeX senza la sua estensione.
Come posso fare questo?
Soluzione
Si può provare qualcosa di simile; non testata, potrebbe non essere esattamente a destra, ma utilizzando exe
è generalmente come ottenere intorno a questo tipo di problema.
autocmd FileType tex exe "set makeprg=rubber-info\\ " . expand("%:t:r") . ".log"
Altri suggerimenti
L'alternativa è quella di impostare makeprg
utilizzando &l:makeprg
:
autocmd FileType tex let &l:makeprg = "rubber-info " . expand("%:t:r") . ".log"
Vedere :help let-&
se volete maggiori informazioni sulle opzioni di impostazione che utilizzano :let
.