grep ile grep araması yaptıktan sonra: grep, bir dosya listesi alırım. Bu dosyalardan birini seçip o satırdaki yeni bir sekmede açmanın bir yolu var mı? Eğer dosyaların bir listesini alırsanızvp dosyasındaki grep dosyasından sonuçların seçilmesi
cevap
Ne istediğinizi başarmak için grep:
aradıktan sonra quickfix/error penceresini açmak zorundasınızGrep'i her kullandığımda benim için bir komut dosyası hazırladım.
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
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
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.
Dosyaları belirli bir satırdaki yeni sekmede nasıl açıyorsunuz? – Amjith