2012-11-10 6 views
9

Ubuntu 12.04'te ve MacOS'un terminalinde gnome terminalinin içinde vim kullanıyorum. Proje geniş metin aramaları gerçekleştirmek için ack.vim eklentisini kullanıyorum ve gayet iyi çalışıyor ancak rahatsız edici ve dikkat dağıtıcı bir hata var:Terminal vim'deki Ack, arama sonuçlarını sunmadan önce çıktı olarak yanıp sönüyor. Nasıl durdurulur?

Arama yaptığınızda, tüm vim ekranı terminale geri döner ve ack'in çıkışını çıktı olarak gösterir. koşar. Çalışmayı durdurduğunda, ekran vim'e geri döner ve arama sonuçları doğru şekilde gösterilir. Ayrıca, vimden çıktığınızda, tüm ack çıkışları terminalde olacaktır.

Bu sorunun farkındayım https://github.com/mileszs/ack.vim/issues/18 ama nasıl düzeltileceğine dair fikirler alıp alamayacağımı görmek için buraya göndermek istedim.

ack.vim'de ack komutunun gerçekten çalıştırıldığı yer olan silent execute a:cmd . " " . l:grepargs numaralı satırı görebiliyorum. Sessiz seçenek zaten orada, benim vim-fu'm beni aldığı sürece. : S

Bunun nasıl düzeltileceği konusunda herhangi bir fikri olan var mı?

cevap

6

Bu, vim own :grep* komutlarının nasıl çalıştığı ile ilgili bir sorun, ack.vim numaralı sorundan değil. Sen terminalini kullanarak, ancak terminale çıktı yineleme işleminden komutu önleyecektir >, &> veya 2>/dev/null> için shellpipe ayarı önlemek (bu seçeneği varsayılan olarak 2>&1|tee ve &> veya 2>&1> değerleri şu anda yapılanlara en yakın olan) olamaz.

+0

Kabuk pipetini> işlenmiş olarak ayarlayın. Bu düzeltmeyi ack.vim'e nasıl dahil ettiğimi görmek için https://github.com/mileszs/ack.vim/issues/18 adresine bakın. Zyx –

+3

@RafaelVega'ya teşekkürler Vimrc'inizde ayarlanması gerekiyordu. ** Eklenti olarak ayarlamanızı önermeyin. ** AFAIR, linux üzerinde csh' için yanlıştır, pencerelerde cmd.exe için kesinlikle yanlıştır. – ZyX

0

Önerilen çözüm işe yarar, ancak şimdi ctrl-z düğmesine basıldıktan sonra vim ekranı çıktıda.