Odpowiedź na twoje bezpośrednie pytanie jest taka, jak na @EvergreenTree. Jednak wydaje mi się, że brakuje Ci niektórych wbudowanych narzędzi Vima do budowania / kompilowania / lintowania projektów. Przede wszystkim :make
lista szybkich poprawek.
Co daje :make
nam korzystanie?
Używanie :make
pozwala zebrać błędy na listę zwaną listą szybkich poprawek. Za pomocą tej poprawki możesz nawigować między błędami w swoich plikach, więc przeskakujesz od razu do miejsca, w którym kompilator mówi, że błąd (przydatny, prawda?).
:robić
Uruchomiony :make
zostanie wykonany program make, 'makeprg'
. Następnie przeanalizuj dane wyjściowe za pomocą 'errorformat'
i umieść każdy wpis na liście szybkich poprawek.
Zazwyczaj 'makeprg'
domyślna jest make
komenda, która uruchamia a Makefile
. Jednak można zmienić 'makeprg'
za pomocą :compiler
polecenia lub ustawić go bezpośrednio.
Możesz także przekazać dodatkowe argumenty :make
. na przykład:make clean
Uwaga: Uruchomienie :make
często pokazuje wynik polecenia na dole ekranu z monitem o naciśnięcie Enter. Wystarczy nacisnąć Enter, ponieważ wszystkie dane wyjściowe będą dostępne na liście szybkich poprawek. Możesz to stłumić za pomocą :silent
np :silent make
.
Typowym niestandardowym poleceniem dla cichego wykonania jest:
command -nargs=* -bar Smake silent make <args> <bar> cwindow
lista szybkich poprawek
Po uruchomieniu :make
lista poprawek będzie zawierać dane wyjściowe kompilatora.
Użyj następującego polecenia, aby poruszać się po liście poprawek.
:copen
aby otworzyć okno poprawki
:cclose
aby zamknąć okno poprawki
:cnext
/, :cprev
aby przejść do następnego / poprzedniego elementu
:cc
aby wydrukować na dole aktualny błąd lub :cc 3
pokazać konkretny błąd w tym przykładzie 3
Osobiście korzystam z nieuszkodzonej wtyczki Tima Pope'a, aby poruszać się po liście poprawek.
Co powiesz na :make
automatyczne i ciche działanie?
Możesz to zrobić z :autocmd
dokładnie tak jak ty.
augroup auto_make
autocmd!
autocmd BufWritePost * silent make
autocmd QuickFixCmdPost *make* cwindow
augroup END
Jako bonus dodałem, otwierając okno szybkiej poprawki przez, :cwindow
jeśli występują jakieś błędy.
Uwaga: Powinny być bardziej szczegółowe z tym wzorcem pliku na BufWritePost
autocmd, aby niepowiązane pliki nie budowały się.
Jest jeszcze więcej ?!
Wykorzystuje tylko kilka wbudowanych poleceń Vima oraz kilka autocmd do przekonania. Istnieją oczywiście wtyczki i narzędzia, które mogą ci pomóc
- Dispatch.vim może służyć do
:make
asynchronicznego uruchamiania zadań.
- Składnia wtyczek syntastycznych sprawdza plik po
:write
.
- Ale.vim (Asynchronous Lint Engine) to wtyczka zapewniająca przechwytywanie w NeoVim i Vim 8 podczas edycji plików tekstowych.
- Unimpaired.vim ułatwia zarządzanie listą poprawek.
- Zwykłe stare pliki makefile. Chyba że
./script.sh
jest to bardzo skomplikowane, możesz rozważyć użycie make. Może skalować wykonać więcej zadań później i jest popularnym narzędziem do budowania.
- Możesz użyć Vim Awesome, aby wyszukać więcej wtyczek, które mogą pomóc.
Wniosek
Osobiście integruję :make
i poprawkę do własnego przepływu pracy. Wierzę, że uchwycenie wyników procesu kompilacji i błędów jest warte inwestycji. Jako dodatkowy bonus, prawdopodobnie poczujesz się bardziej komfortowo z listą szybkich poprawek i możesz używać tej listy do innych aplikacji, takich jak :grep
.
Aby uzyskać więcej pomocy, zobacz:
:h :make
:h quickfix
:h 'makeprg'
:h 'errorformat'
:h :compiler
:h :copen
:h :cwindow
:h :cnext
:h :cc