Jawaban:
Anda bisa melakukannya:
:redir => scriptn | sil exe 'scriptnames' | redir end | echo(system('grep pattern',scriptn))
Apa fungsinya:
:redir => scriptn "redirect following output to variable scriptn
:sil exe 'scriptnames' "silently execute scriptnames
:redir end "end the redirection
:echo(system('grep pattern',scriptn)) "echo the call of grep witht that input with the pattern `pattern`
The :filterperintah adalah pendekatan sederhana, satu-line untuk ini.
:filter /indent/ scriptnames
Akan menunjukkan hanya garis yang cocok dengan pola indentdari output :scriptnamesperintah.
Saya melihat :redirsolusi berorientasi untuk pertanyaan seperti ini sering, yang baik-baik saja dan menawarkan banyak kekuatan dan pilihan, tetapi saya merasa mereka agak berlebihan ketika lebih sering daripada tidak, Anda hanya perlu dengan cepat memeriksa apakah ada sesuatu di sana. :filternyaman digunakan pada saat mati sederhana.
Pertama, Anda perlu mengambil output scriptnamesdan memasukkannya ke dalam buffer.
Anda dapat menggunakannya :rediruntuk itu:
:redir @a " redirect output of following ex commands to register a
:scriptnames " press G to get to the end of the output if it's too long
:redir END " end the redirection
:vnew " new buffer in vertical window
:put a " put content of register
/pattern " search for 'pattern'
Yang mengatakan, :scriptnameoutput yang terlalu panjang untuk dipindai dengan mata Anda sendiri mungkin merupakan gejala dari masalah yang lebih dalam.
:scriptnameslebih panjang dari Magna Carta, Anda mungkin mempertimbangkan untuk menginstal scriptease Tim Pope . Ini menyediakan fungsi :Scriptnamesyang menempatkan semua sampah itu dalam daftar perbaikan cepat. Di sana Anda dapat mencarinya ke isi hati Anda, menyimpannya ke file, atau pergi ke skrip yang sesuai.
NERDTreemeletakkan semua fungsinya dalam satu file, agar outputnya :scriptnamessingkat? Apakah itu membuatnya menjadi plugin tertulis yang lebih baik?