Jawaban atas pertanyaan langsung Anda sama seperti yang dikirim oleh @EvergreenTree. Namun saya merasa seperti Anda kehilangan beberapa alat builtin Vim untuk membangun / mengkompilasi / proyek linting. Terutama :makedan daftar perbaikan cepat.
Apa gunanya :makemembuat kita?
Menggunakan :makememungkinkan Anda untuk mengumpulkan kesalahan Anda menjadi daftar yang dikenal sebagai daftar perbaikan cepat. Menggunakan perbaikan cepat, Anda dapat menavigasi antara kesalahan dalam file Anda, sehingga Anda melompat langsung ke tempat kompiler mengatakan kesalahan itu (berguna kan?).
:membuat
Menjalankan :makeakan menjalankan program make 'makeprg',. Kemudian parsing output dengan 'errorformat'dan masukkan setiap entri ke daftar perbaikan cepat.
Biasanya 'makeprg'default untuk makeperintah yang menjalankan a Makefile. Namun Anda dapat mengubah Anda 'makeprg'melalui :compilerperintah atau mengaturnya secara langsung.
Anda juga dapat memberikan argumen tambahan :make. misalnya:make clean
Catatan: menjalankan :makeakan sering menampilkan output dari perintah di bagian bawah layar dengan permintaan yang meminta untuk menekan enter. Cukup tekan enter karena semua output akan tersedia dalam daftar perbaikan cepat. Anda dapat menekan ini melalui :silent, mis :silent make.
Perintah khusus umum untuk make diam adalah:
command -nargs=* -bar Smake silent make <args> <bar> cwindow
daftar perbaikan cepat
Setelah Anda menjalankan :makedaftar perbaikan cepat Anda akan menahan output dari kompiler.
Gunakan perintah berikut untuk menavigasi daftar perbaikan cepat.
:copen untuk membuka jendela perbaikan cepat
:cclose untuk menutup jendela perbaikan cepat
:cnext/ :cprevuntuk pindah ke item berikutnya / sebelumnya
:ccuntuk mencetak di bagian bawah kesalahan saat ini atau :cc 3untuk menunjukkan kesalahan tertentu dalam contoh ini 3
Secara pribadi saya menggunakan plugin Tim Pope yang tidak rusak untuk menavigasi daftar perbaikan cepat.
Bagaimana dengan berlari :makesecara otomatis dan diam-diam?
Anda bisa melakukan ini dengan :autocmdsama seperti Anda di mana.
augroup auto_make
autocmd!
autocmd BufWritePost * silent make
autocmd QuickFixCmdPost *make* cwindow
augroup END
Sebagai bonus saya menambahkan membuka jendela perbaikan cepat :cwindowjika ada kesalahan.
Catatan: Harus lebih spesifik dengan pola file pada BufWritePostautocmd sehingga file yang tidak terkait tidak dibuat.
Masih ada lagi ?!
Ini hanya menggunakan beberapa perintah built-in Vim plus beberapa autocmd untuk meyakinkan. Tentu saja ada plugin dan alat yang dapat membantu Anda
- Dispatch.vim dapat digunakan untuk menjalankan
:makepekerjaan secara tidak sinkron.
- Syntastic pemeriksaan sintaks Plugin mengajukan setelah
:write.
- Ale.vim (Asynchronous Lint Engine) adalah sebuah plugin untuk menyediakan linting di NeoVim dan Vim 8 saat Anda mengedit file teks Anda.
- Unimpaired.vim memudahkan pengelolaan daftar perbaikan cepat.
- Makefiles tua polos. Kecuali jika Anda
./script.shsangat rumit, Anda mungkin ingin menggunakan make. Ini dapat skala melakukan lebih banyak tugas nanti dan merupakan alat bangunan umum.
- Anda dapat menggunakan Vim Awesome untuk mencari lebih banyak plugin yang mungkin membantu.
Kesimpulan
Secara pribadi saya mengintegrasikan :makedan perbaikan cepat ke dalam alur kerja saya sendiri. Saya percaya menangkap output dari proses build Anda dan menangkap kesalahan agar bernilai investasi. Sebagai bonus tambahan, Anda mungkin akan lebih nyaman dengan daftar perbaikan cepat dan dapat menggunakan daftar untuk aplikasi lain seperti :grep.
Untuk bantuan lebih lanjut lihat:
:h :make
:h quickfix
:h 'makeprg'
:h 'errorformat'
:h :compiler
:h :copen
:h :cwindow
:h :cnext
:h :cc