2012-11-09 11 views
8

numaralı telefondaki diğer sekme/pencere/arabelleğe alma VIM araması için güzel bir özellik buldum, yani tüm arama sonuçlarını ve karşılık gelen satır numaralarını listelemeyi buldum. Örneğinboru arama sonucunu VIM

:

:g/for.*bar/# 

Soru: borusuna bir "kolay" yolu var mı/başka bir pencere/sekme/tampon içine koymak?

Şerefe!

+0

Şunu Do BR "Bu listeyi ve yeni bir tampon numara koymak"? – romainl

+0

@romaini: gerçekten. Örneğin bölünmüş bir pencereye .. kopyalamak için bir şey, içine kaydırma. Şu anda listeyi aldım ama hareket ettiğimde "kaybolur". – ezdazuzena

cevap

7

:g/for.*bar/# çıktısını yeni bir arabelleğe nasıl aktaracağımı bilmiyorum ama aynı sonucu elde etmek için vimgrep'u nasıl kullanacağımı biliyorum.

Dene:

vimgrep "for.*bar" % 
:copen 

Artık tüm arama sonuçları ile bir tampon varsa ve hatta :cn ve :cp ile aralarında gezinebilirsiniz. Ben \ ss (gösteri arama) ile QuickFix penceresinde doğrudan son arama açmak için bir haritaladık sizin .vimrc ekleyin:

kabul cevabı Complimenting :help quickfix

+0

buna benziyor. Çok nazik olabilir ve '%' nin ne yaptığını açıklayabilir misiniz? Tam olarak ne 'kırılma' anlamına gelir, yani vimgrep’ten gelen sonuç nereye gider? – ezdazuzena

+1

@ezdazuzena Sure '%', sadece komut modunda geçerli dosyaya giden yol ile değiştirilir. – Benj

+0

Teşekkürler. Sorunun ikinci kısmına gelince, cevabı burada buldum: http://blogs.gurulabs.com/stuart/archives/2006/08/vimgrep-copen.html – ezdazuzena

2

Ben bir tampon doğrudan çıktıyı yönlendirmek için nasıl bilmiyorum, ama bir dosyaya göndermek için redir kullanabilirsiniz:

:redir > file 
:g/for.*bar/# 
:redir END 

Veya bir kayıt için:

:redir @a 
:g/for.*bar/# 
:redir END 

Daha fazla bilgi için :help :redir'a bakın.

+0

... ve kayıt o zaman: 'koy! a 'yeni bir arabelleğe. –

1

bir göz atın

" show last search results on the quickfix window at windows bottom 
nnoremap <silent><leader>ss :vimgrep /<C-r>\// % <CR> :botright copen <CR>