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 :makeve hızlı düzeltme listesi.
Kullanmak :makebizi ne elde ediyor?
:makeSeç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 :makeyapmak 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 makekomutunu çalıştırır Makefile. Ancak size değiştirebilir 'makeprg'aracılığıyla :compilerkomuta veya doğrudan ayarlayın.
Ayrıca ek argümanlar da iletebilirsiniz :make. Örneğin:make clean
Not: run :makekomutu 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 :makequickfix 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/ :cprevsonraki / önceki öğeye gitmek için
:ccgeçerli hatayı alttan yazdırmak veya :cc 3bu örnekte belirli bir hatayı göstermek için 3
Şahsen Tim Papa'nın kullanmak zarar görmemiş QuickFix listesinde gezinmek için eklenti.
:makeOtomatik ve sessiz koşmaya ne dersiniz ?
Bunu :autocmdsizin 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 ,
:makeiş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 :makekendi 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