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 :make
dan daftar perbaikan cepat.
Apa gunanya :make
membuat kita?
Menggunakan :make
memungkinkan 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 :make
akan menjalankan program make 'makeprg'
,. Kemudian parsing output dengan 'errorformat'
dan masukkan setiap entri ke daftar perbaikan cepat.
Biasanya 'makeprg'
default untuk make
perintah yang menjalankan a Makefile
. Namun Anda dapat mengubah Anda 'makeprg'
melalui :compiler
perintah atau mengaturnya secara langsung.
Anda juga dapat memberikan argumen tambahan :make
. misalnya:make clean
Catatan: menjalankan :make
akan 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 :make
daftar 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
/ :cprev
untuk pindah ke item berikutnya / sebelumnya
:cc
untuk mencetak di bagian bawah kesalahan saat ini atau :cc 3
untuk 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 :make
secara otomatis dan diam-diam?
Anda bisa melakukan ini dengan :autocmd
sama 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 :cwindow
jika ada kesalahan.
Catatan: Harus lebih spesifik dengan pola file pada BufWritePost
autocmd 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
:make
pekerjaan 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.sh
sangat 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 :make
dan 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