La risposta alla tua domanda diretta è proprio come ha pubblicato @EvergreenTree. Tuttavia, mi sembra che manchi qualche strumento integrato di Vim per la costruzione / compilazione / sfilacciatura di progetti. In particolare :make
e l'elenco delle correzioni rapide.
Cosa ci porta ad usare :make
?
L'utilizzo :make
consente di raccogliere gli errori in un elenco noto come elenco di correzioni rapide. Usando la correzione rapida puoi navigare tra gli errori nei tuoi file, quindi stai saltando proprio dove il compilatore dice che l'errore è (utile vero?).
:rendere
Esecuzione :make
eseguirà il programma make, 'makeprg'
. Quindi analizzare l'output con 'errorformat'
e inserire ciascuna voce nell'elenco di correzione rapida.
In genere il 'makeprg'
valore predefinito è il make
comando che esegue a Makefile
. Tuttavia puoi cambiare il tuo 'makeprg'
tramite il :compiler
comando o impostarlo direttamente.
Puoi anche passare argomenti aggiuntivi a :make
. per esempio:make clean
Nota: l'esecuzione :make
mostrerà spesso l'output del comando nella parte inferiore dello schermo con un prompt che chiede di premere Invio. Basta premere invio poiché tutto l'output sarà disponibile nell'elenco delle correzioni rapide. Puoi eliminarlo tramite :silent
, ad es :silent make
.
Un comando personalizzato comune per un make silenzioso è:
command -nargs=* -bar Smake silent make <args> <bar> cwindow
elenco di correzioni rapide
Dopo aver eseguito il :make
tuo elenco di aggiornamenti rapidi conterrà l'output del compilatore.
Utilizzare il comando seguente per navigare nell'elenco delle correzioni rapide.
:copen
per aprire la finestra di aggiornamento rapido
:cclose
per chiudere la finestra di aggiornamento rapido
:cnext
/ :cprev
per passare all'elemento successivo / precedente
:cc
per stampare in fondo l'errore corrente o :cc 3
per mostrare un errore specifico in questo esempio 3
Personalmente uso il plug-in senza compromessi di Tim Pope per navigare nell'elenco delle correzioni rapide.
Che dire di correre :make
automaticamente e in silenzio?
Puoi farlo con un :autocmd
proprio come te dove.
augroup auto_make
autocmd!
autocmd BufWritePost * silent make
autocmd QuickFixCmdPost *make* cwindow
augroup END
Come bonus ho aggiunto aprendo la finestra di aggiornamento rapido tramite :cwindow
se sono presenti errori.
Nota: dovrebbe essere più specifico con quel modello di file su BufWritePost
autocmd in modo che i file non correlati non vengano creati.
Ce n'è ancora di più ?!
Questo sta usando solo alcuni dei comandi integrati di Vim più alcuni autocmd per convincere. Ci sono ovviamente plugin e strumenti che potrebbero aiutarti
- Dispatch.vim può essere utilizzato per eseguire
:make
lavori in modo asincrono.
- La sintassi del plugin sintetico controlla il file dopo
:write
.
- Ale.vim (Asynchronous Lint Engine) è un plugin per fornire lanugine in NeoVim e Vim 8 mentre modifichi i tuoi file di testo.
- Unimpaired.vim semplifica la gestione dell'elenco delle correzioni rapide.
- Semplici vecchi Makefile. A meno che non
./script.sh
sia molto complicato, potresti voler esaminare l'uso di make. Può ridimensionare più attività in un secondo momento ed è uno strumento di costruzione comune.
- Puoi usare Vim Awesome per cercare altri plugin che potrebbero aiutarti.
Conclusione
Personalmente mi integra :make
e la correzione rapida nel mio flusso di lavoro. Credo che catturare l'output del tuo processo di creazione e catturare gli errori valga la pena investire. Come bonus aggiuntivo ti sentirai probabilmente più a tuo agio con l'elenco delle correzioni rapide e puoi utilizzare l'elenco per altre applicazioni come :grep
.
Per ulteriori informazioni, consultare:
:h :make
:h quickfix
:h 'makeprg'
:h 'errorformat'
:h :compiler
:h :copen
:h :cwindow
:h :cnext
:h :cc