2009-08-05 7 views

cevap

11

Ne istediğinizi başarmak için grep:

aradıktan sonra quickfix/error penceresini açmak zorundasınız

Grep'i her kullandığımda benim için bir komut dosyası hazırladım.

+1

Dosyaları belirli bir satırdaki yeni sekmede nasıl açıyorsunuz? – Amjith

1

Eğer daha fazla bilgi için

:cn 
:colder 

aracılığıyla bir ağaç benzeri bir şekilde

:help grep 

bunları taramak ve girişin altına inin olabilir

12

Sadece tamlık ve :copen komutu için :cw da var, eğer girişler varsa sadece "quickfix" penceresini açar (böylece grep'iniz hiçbir sonuç içermiyorsa, görünmez). Yapabileceğin,

:cw    " Open the quickfix window 
Ctrl-W T   " Switch the window into a new tab 
<ENTER>   " Open the file/line 

Alternatif:

Yapacak olacak yeni bir sekmede açık dosyaları yapma (bir eşleme tanımlama olmadan) en kolay yolu düşünüyorum

:cw    " Open the quick fix window 
Ctrl-W <ENTER>  " Open the file/line in a new window 
Ctrl-W T   " Move the new window to a new tab 

ise Bunu varsayılan olarak yapmak istiyorsanız, muhtemelen, düzeltme penceresine girip çıkarken bir eşleme oluşturmak ve kaldırmak için BufEnter ve BufLeave autocmds kullanabilirsiniz; Ancak, bu muhtemelen önemsiz değildir.

:help :cw 
:help :copen 
:help quickfix 
1

Bu konuya çok benzer bir soruyu yanıtlamak için geldim. Yukarıda sunulan cevap, doğru olsa da, QuickFix penceresindeki TÜM dosyaları bir seferde ... arabelleklere veya sekmelere açmak için uygun bir yol tanımlayamadı.

bir bunu yapmak için komuta inşa olmak görünmüyor, ama bir VIM eklentisi olarak Önemsiz ... birisi http://pastebin.com/J9RwciFQ

burada yapacağını yaptı Kodun (tek fonksiyonlu) 12 satırları bu. .. analiziniz sırasında size bir tıklama kaydetmek için buraya yapıştırıldı. Bunu uygulamaya çalışacaksanız macun linkini takip edin ... eklentim patojen dizinine kurulur ve eklentiyi orijinalden biraz değiştirdim (koddan sonra detaylar). Bir grep sonucu yaptırdıktan sonra

~/.v/b/v/p/quickfixopenall.vim 
" Create command 
command! QuickFixOpenAll :call StartQuickFixOpenAll() 

function! StartQuickFixOpenAll() 
    if empty(getqflist()) 
     return 
    endif 
    let s:prev_val = "" 
    for d in getqflist() 
     let s:curr_val = bufname(d.bufnr) 
     if (s:curr_val != s:prev_val) 
      exec "edit " . s:curr_val 
     endif 
     let s:prev_val = s:curr_val 
    endfor 
endfunction 

Yani eklenti bir işlevi vardır ile ... memnunum: QuickFixOpenAll ... Ben verildiği gibi eklenti değiştirmek zorunda kaldı (quickfixplugin.vim aşağıdaki satırı eklendi). Ve açık tampon olarak grep sonucu tüm dosyaları var ... Böyle/bulmak Eğer öneki yerine herhangi commeon işlemleri çalıştırmak istiyorsanız Sonra verilen fonksiyon StartQuickFixOpenAll ...

" Create command 
command! QuickFixOpenAll :call StartQuickFixOpenAll() 

değiştirildi Komutunuzu tümüyle yerine getirecek olan "bufdo" komutuyla düzenli komut.VIM türünde "help bufdo"

Bu eklentiyi oldukça basit bir şekilde değiştirebilirseniz, sekmeleri kullanacaksanız ... commaned "edit" yazısını kullanır ... sadece "tabe" ile değiştirin ve: QuickFixOpenAll her birini açacaktır Yeni bir sekmede sonuç arabelleği.