Die Antwort auf Ihre direkte Frage lautet genauso wie bei @EvergreenTree. Ich habe jedoch das Gefühl, dass Ihnen einige der in Vim integrierten Tools zum Erstellen / Kompilieren / Flusen von Projekten fehlen. Vor allem :make
und die Quickfix-Liste.
Was bringt :make
uns die Nutzung ?
Mithilfe von :make
können Sie Ihre Fehler in einer Liste sammeln, die als Quickfix-Liste bezeichnet wird. Mit dem Quickfix können Sie zwischen den Fehlern in Ihren Dateien navigieren, sodass Sie direkt zu der Stelle springen, an der der Compiler den Fehler meldet (praktisch, oder?).
:machen
Läuft, :make
wird das make-Programm ausgeführt 'makeprg'
. 'errorformat'
Analysieren Sie dann die Ausgabe mit und fügen Sie jeden Eintrag in die Quickfix-Liste ein.
Der Standardwert ist 'makeprg'
normalerweise der make
Befehl, der a ausführt Makefile
. Sie können dies jedoch 'makeprg'
über den :compiler
Befehl ändern oder direkt einstellen.
Sie können auch zusätzliche Argumente an übergeben :make
. z.B:make clean
Hinweis: Beim Ausführen :make
wird häufig die Ausgabe des Befehls am unteren Bildschirmrand mit der Aufforderung angezeigt, die Eingabetaste zu drücken. Drücken Sie einfach die Eingabetaste, da alle Ausgaben in der Quickfix-Liste verfügbar sind. Sie können dies unterdrücken, indem Sie :silent
z :silent make
.
Ein gebräuchlicher benutzerdefinierter Befehl für ein stilles Make lautet:
command -nargs=* -bar Smake silent make <args> <bar> cwindow
Quickfix-Liste
Nachdem Sie ausgeführt haben, enthält :make
Ihre Quickfix-Liste die Ausgabe des Compilers.
Verwenden Sie den folgenden Befehl, um in der Quickfix-Liste zu navigieren.
:copen
um das Quickfix-Fenster zu öffnen
:cclose
um das Quickfix-Fenster zu schließen
:cnext
/ :cprev
, um zum nächsten / vorherigen Element zu wechseln
:cc
um den aktuellen Fehler unten auszudrucken oder :cc 3
einen bestimmten Fehler in diesem Beispiel anzuzeigen 3
Persönlich benutze ich Tim Popes unbeeinträchtigtes Plugin, um in der Quickfix-Liste zu navigieren.
Was ist mit :make
automatischem und leisem Laufen ?
Sie können dies mit einem :autocmd
wie Sie tun , wo.
augroup auto_make
autocmd!
autocmd BufWritePost * silent make
autocmd QuickFixCmdPost *make* cwindow
augroup END
Als Bonus habe ich beim Öffnen des Quickfix-Fensters hinzugefügt, :cwindow
ob Fehler vorliegen.
Hinweis: Sollte mit diesem BufWritePost
Dateimuster auf der AutocMD genauer sein, damit nicht verwandte Dateien nicht erstellt werden.
Gibt es noch mehr ?!
Hierfür werden nur einige der in Vim integrierten Befehle sowie einige automatische Befehle zum Überzeugen verwendet. Es gibt natürlich Plugins und Tools, die Ihnen helfen könnten
- Mit Dispatch.vim können
:make
Jobs asynchron ausgeführt werden.
- Syntastic Plugin Syntax prüft Datei nach
:write
.
- Ale.vim (Asynchronous Lint Engine) ist ein Plugin, mit dem Sie in NeoVim und Vim 8 Flusen erstellen können, während Sie Ihre Textdateien bearbeiten.
- Unimpaired.vim vereinfacht die Verwaltung der Quickfix-Liste.
- Einfache alte Makefiles. Es
./script.sh
sei denn, Ihr ist sehr kompliziert, möchten Sie vielleicht make verwenden. Es kann später skaliert werden, um mehr Aufgaben zu erledigen, und ist ein gängiges Erstellungswerkzeug.
- Sie können Vim Awesome verwenden , um nach weiteren Plugins zu suchen, die möglicherweise hilfreich sind.
Fazit
Persönlich integriere ich :make
und den Quickfix in meinen eigenen Workflow. Ich glaube, dass es sich lohnt, die Ergebnisse Ihres Build-Prozesses und die Fehler zu erfassen. Als zusätzlichen Bonus werden Sie möglicherweise mit der Quickfix-Liste vertraut und können die Liste für andere Anwendungen wie verwenden :grep
.
Weitere Hilfe finden Sie unter:
:h :make
:h quickfix
:h 'makeprg'
:h 'errorformat'
:h :compiler
:h :copen
:h :cwindow
:h :cnext
:h :cc