2010-12-08 11 views
10

açık, benBul bütün VI tamponlarda/Grep birçok tampon ile

ben :bufdo komutu can biliyor (? Çabuk liste) bir ifadeler için tüm tamponları arama ve arama sonucunu gezinmek için basit bir yol gerekir ve bunun %s ile arama yapmak ve değiştirmek kolaydır, ancak basit bir arama yapmanın ve sonuçlarda gezinmenin bir yolunu bulamıyorum. o ..

O (örneğin buffergrep) için eklentileri bulundu, ancak bu basit bir görev doğal bir vim hile ile desteklenmiyorsa, ben şaşıracaksınız nedir?

+0

Olası kopyalar [I Vim açık tamponlarını arama nasıl?] (Http://stackoverflow.com/questions/11975174/how-do-i-search-the- open-buffers-in-vim) –

cevap

4

:grep & co. sonuçları arasında hızlı gezinme sağlayan QuickFix tampon, dolduracaktır.

+2

Bunu, BUFFERS içinde grep'lemek için kullanabiliyor musunuz ve dosyaları değil, –

+3

@Samer Abukhait: Belgeleri önerir:: call setqflist ([]) | Bufdo grepadd! Daha fazla durumla başa çıkmak için bazı ek çalışmalar ile,% 'bir şey. – ephemient

+0

grepadd! hile yapmak gibi görünüyor. Dokümantasyon, onu istenen davranışla eşleştirmek için yeterince açık değil ya da (söz dizimi öğeleri nelerdir?) Ve/veya "%" dışındaki bir şeyi kullanabilir miyim?) Gibi soruları yanıtlamak için yeterince açık değil. Ama her durumda, istediğimi yapmak için bir yolum var ve bunun için sana teşekkür ediyorum! –

2

"Bunu (örneğin buffergrep) için eklentileri bulundu, ancak bu basit bir görev doğal bir vim hile ile desteklenmiyorsa, ben öyle .. şaşıracaksınız?"

bildiğim hayır. Ve bu işlevselliği sunmaya çalışan çoklu eklentilerin varlığı bunu doğrulamak eğilimindedir. . .

Ne eklentileri denediğinizi var ve ne eksik edilmiştir?

http://www.vim.org/scripts/script.php?script_id=2545 
http://www.vim.org/scripts/script.php?script_id=2255 

Ayrıca, sadece emin olmak için, vimgrep'in farkındasınız, değil mi? Vimgrep, dosyaları arabelleklere yükleyen ve arabelleklerde greps yapan bir iç komut olup, quickfix penceresindeki sonuçlarla sonuçlanır. Ben doğruladı değil, ama bir arama dosya zaten o bayrak seti 'nomodified' eğer Vimgrep, bunu en azından yeniden olmayan bir tampon açık olup olmadığını varsayalım. Öyleyse, hızlı ve kolay bir tampon kopması için Vimgrep'i kullanmanın bir yolu, Vimgrep için çıktı: bufferlar komutundan bir dosya listesi oluşturmak olacaktır. :help grepadd den

3

:grepa[dd][!] [arguments] 
      Just like ":grep", but instead of making a new list of 
      errors the matches are appended to the current list. 
      Example: 
       :call setqflist([]) 
       :bufdo grepadd! something % 
      The first command makes a new error list which is 
      empty. The second command executes "grepadd" for each 
      listed buffer. Note the use of ! to avoid that 
      ":grepadd" jumps to the first error, which is not 
      allowed with |:bufdo|. 
      An example that uses the argument list and avoids 
      errors for files without matches: 
           :silent argdo try 
        \ | grepadd! something % 
        \ | catch /E480:/ 
        \ | endtry" 
ait