Doğrudan sorunuzun cevabı, @EvergreenTree'nin paylaştığı gibidir. Ancak, bina / derleme / linting projeleri için bazı Vim yerleşik aracını eksik gibi hissediyorum. En önemlisi :make
ve hızlı düzeltme listesi.
Kullanmak :make
bizi ne elde ediyor?
:make
Seçeneğini kullanmak , hatalarınızı hızlı düzeltme listesi olarak bilinen bir listede toplamanızı sağlar. Hızlı düzeltmeyi kullanarak dosyalarınızdaki hatalar arasında gezinebilirsiniz, böylece derleyicinin hatanın söylediği yere atlarsınız (kullanışlı değil mi?).
:Yapmak
Koşu :make
yapmak programı yürütecek 'makeprg'
,. Ardından çıktıyı ayrıştırın 'errorformat'
ve her girdiyi hızlı düzeltme listesine koyun.
Genellikle 'makeprg'
, a make
komutunu çalıştırır Makefile
. Ancak size değiştirebilir 'makeprg'
aracılığıyla :compiler
komuta veya doğrudan ayarlayın.
Ayrıca ek argümanlar da iletebilirsiniz :make
. Örneğin:make clean
Not: run :make
komutu genellikle ekranın altındaki komutun çıkışını enter tuşuna basmanızı isteyen bir komut istemiyle gösterir. Tüm çıktılar hızlı düzeltme listesinde bulunacağından enter tuşuna basmanız yeterlidir. Bunu :silent
, örn :silent make
.
Sessiz bir marka için ortak bir özel komut:
command -nargs=* -bar Smake silent make <args> <bar> cwindow
hızlı düzeltme listesi
Çalıştırdıktan sonra :make
quickfix listeniz derleyicinin çıktısını tutacaktır.
Hızlı düzeltme listesinde gezinmek için aşağıdaki komutu kullanın.
:copen
hızlı düzeltme penceresini açmak için
:cclose
hızlı düzeltme penceresini kapatmak için
:cnext
/ :cprev
sonraki / önceki öğeye gitmek için
:cc
geçerli hatayı alttan yazdırmak veya :cc 3
bu örnekte belirli bir hatayı göstermek için 3
Şahsen Tim Papa'nın kullanmak zarar görmemiş QuickFix listesinde gezinmek için eklenti.
:make
Otomatik ve sessiz koşmaya ne dersiniz ?
Bunu :autocmd
sizin gibi bir yerde yapabilirsiniz.
augroup auto_make
autocmd!
autocmd BufWritePost * silent make
autocmd QuickFixCmdPost *make* cwindow
augroup END
Bonus olarak :cwindow
, herhangi bir hata varsa quickfix penceresini açmaya ekledim .
Not: BufWritePost
İlişkili olmayan dosyaların oluşturulmaması için autocmd'deki dosya desenine daha açık olmalıdır.
Dahası var mı ?!
Bu, Vim'in yerleşik komutundan sadece birkaçını ve ikna etmek için birkaç autocmd'yi kullanıyor. Tabii ki size yardımcı olabilecek eklentiler ve araçlar var
- Dispatch.vim ,
:make
işleri eşzamansız olarak çalıştırmak için kullanılabilir .
- Sözdizimi eklentisi sözdizimi dosyayı sonra denetler
:write
.
- Ale.vim (Asynchronous Lint Engine), metin dosyalarınızı düzenlerken NeoVim ve Vim 8'de linting sağlayan bir eklentidir.
- Unimpaired.vim , hızlı düzeltme listesini yönetmeyi kolaylaştırır.
- Düz eski Makefiles. Sizin
./script.sh
çok karmaşık olmadığı sürece make kullanarak bakmak isteyebilirsiniz. Daha sonra daha fazla görev yapabilir ve ortak bir yapı aracıdır.
- Yardımcı olabilecek daha fazla eklenti aramak için Vim Awesome uygulamasını kullanabilirsiniz .
Sonuç
Şahsen ben :make
kendi iş akışımı entegre ve hızlı düzeltme. Yapım sürecinizin çıktısını yakalamanın ve hataları yakalamanın yatırıma değecek olduğuna inanıyorum. Ek bir bonus olarak, hızlı düzeltme listesiyle daha rahat olursunuz ve listeyi diğer uygulamalar için kullanabilirsiniz :grep
.
Daha fazla yardım için bkz:
:h :make
:h quickfix
:h 'makeprg'
:h 'errorformat'
:h :compiler
:h :copen
:h :cwindow
:h :cnext
:h :cc