2012-06-14 13 views
6

Mi piacerebbe essere in grado di creare ed eseguire il codice Go da dentro con accesso alla finestra di quickfix se ci sono errori di compilazione.Vim makeprg e errorformat per Go

Per ottenere qualcosa di simile a questo con Java ho aggiunto il seguente al mio Vimrc:

autocmd Filetype java set makeprg=ant\ -find\ build.xml 
autocmd Filetype java set efm=%A\ %#[javac]\ %f:%l:\ %m,%-Z\ %#[javac]\ %p^,%-C%.%# 

ho il seguente attualmente per Go nel mio Vimrc:

autocmd Filetype go set makeprg=go\ run 

cosa posso fare in modo che :make (o :make %) si comportino come se fosse un buon programma "vecchio C" con una buona segnalazione degli errori e l'output sotto il buffer?

+0

Quello che ti serve è un file di compilatore per 'ant' ... ce n'è già uno là fuori. Hai provato Google? Esistono anche guide per l'utilizzo di vim come IDE per Java; la configurazione dovrebbe essere la stessa, eccetto che stai usando la sintassi golang. – kprobst

+1

Per quanto ne so, è solo per Java, non per Go (che non è correlato a Java, non usa JVM, ecc.). Stavo solo usando Java come esempio di ciò che avevo fatto per una lingua diversa. – lyallcooper

+1

Una volta ho provato a creare una riga 'errorformat' per NAnt ... e ho rinunciato. È troppo arcano e difficile da testare in modo iterativo, come molte delle funzionalità di script di vim. Io amo vim, ma ci sono alcune cose che sono frustranti, specialmente perché so che non si può fare. È solo troppo difficile e non ci sono abbastanza esempi di cose nuove, non-Unix, là fuori. – kprobst

risposta

3

Nei casi in cui la directory di lavoro corrente è costituito da un singolo programma o una libreria, il seguente funziona bene con Vim:

autocmd Filetype go set makeprg=go\ build 

Per i casi in cui v'è solo un file che si desidera compilare, mi ignorare questo con :

:set makeprg=go\ build\ hello.go 

Più può essere trovato alla jnwhiteh di vim-golang.

+0

Ma per quanto riguarda la segnalazione degli errori e la finestra di aggiornamento rapido? – lyallcooper

+0

Oh e anche quello che faccio è semplicemente avere un comando separato che chiama ': make%' quindi apre la finestra di quickfix con ': copen', di solito mappato a un tasto come F7. ('mappa : marca% : copen '). – lyallcooper