2014-05-18 15 views
7

Uso Vim ogni giorno per scrivere script di shell. Ho letto circa la finestra di quickfix e penso che potrebbe accelerare la mia produttività nel ciclo edit-run-fix.Come utilizzare la correzione rapida in Vim per eseguire il debug di script Bash

Se ho capito bene, devo scrivere la mia propria funzione errorformat al fine di Vim per essere in grado di catturare gli errori e introdurli nella finestra diquickfix. Ma questo sembra essere davvero complicato.

Esiste un/modo più conveniente facile da sfruttare la finestra diquickfix in Vim durante la scrittura di script Bash?

+1

Does errore vostro numero di rete prodotti copione annotato messaggi in fase di esecuzione che si desidera esaminare o si desidera utilizzare lo shellcheck per visualizzare gli avvisi di compilazione nella finestra della correzione rapida? –

+0

Sì, penso di aver bisogno di usare lo shellcheck. Proverò a implementare la soluzione di Michael qui sotto. Grazie. – Onturenio

risposta

8

La finestra di quickfix di Vim è progettata per accelerare il ciclo edit-compile-edit. Poiché gli script di Bash non vengono compilati, dobbiamo sostituire qualcos'altro per quel passaggio che può indicare errori nello script corrente.

Quello che vuoi è uno strumento di analisi statica per gli script di Bash. Ce ne sono due buoni: shellcheck e checkbashisms. Ti consigliamo di installare almeno shellcheck, in quanto è la più completa della coppia, ma l'installazione di checkbashisms ti aiuterà a cogliere alcuni altri problemi.

Per integrare questi due strumenti in Vim, è necessario un plug-in chiamato Syntastic. Controllare la pagina del progetto per le istruzioni di installazione.

Una volta che hai tutto installato, sarete in grado di ottenere un feedback immediato sulle questioni di fondo nello script Bash:

Vim window with Syntastic + shellcheck

  • Usa :SyntasticCheck per forzare il controllo per l'esecuzione
  • Se si desidera che la finestra "QuickFix" a comparire, eseguire :Errors
+0

Se lo shebang è '#!/Bin/sh', ShellCheck avvertirà effettivamente la maggior parte delle stesse cose che fanno i checkbash. –

+0

@thatotherguy Buono a sapersi. Sono abbastanza sicuro di aver avuto "checkbashisms" per avvertirmi di cose che "shellcheck" non ha, ma sono d'accordo, "shellcheck" è di gran lunga il più utile della coppia. –

Problemi correlati