2010-05-05 10 views
5

Ho un makefile che assomiglia:Lua salto alla linea di destra

default: 
    lua blah.lua 

Ora, in Vim, digito ": make".

C'è un errore nel mio codice Lua; dà un nome di file + numero di riga. Vorrei che Vim salisse sul file/riga giusto. Come faccio a far succedere questo?

risposta

7

È possibile impostare la stringa del formato di errore per riconoscere l'output dell'interprete lua. Ad esempio, aggiungere questo al vostro file .vimrc:

autocmd BufRead *.lua setlocal efm=%s:\ %f:%l:%m 

che assume gli errori nella versione di Lua simile a questa:

lua: blah.lua:2: '=' expected near 'var' 

Bonus suggerimento: invece di utilizzare un makefile, è possibile utilizzare l'impostazione makeprg:

autocmd BufRead *.lua setlocal makeprg=lua\ % 

che verrà eseguito il file corrente attraverso lua quando si digita :make.

+0

Bello. Grazie! Capisco la parte% f:% l. Ti interessa spiegare come "%.% #" Corrisponde a "lua"? – anon

+1

'%.% #' È il formato dell'errore equivalente a un '. *' In un'espressione regolare. IOW corrisponde a qualsiasi cosa (ad es./Usr/bin/lua). Forse un po 'di trucco, ma il lavoro è fatto! – richq

+0

c'è un modo per farlo dire "lua:" invece di "%.% #"? sembra più intuitivo/più chiaro per me, ma non so come esprimere taht nel formato dell'errore – anon