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 :filter
perintah adalah pendekatan sederhana, satu-line untuk ini.
:filter /indent/ scriptnames
Akan menunjukkan hanya garis yang cocok dengan pola indent
dari output :scriptnames
perintah.
Saya melihat :redir
solusi 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. :filter
nyaman digunakan pada saat mati sederhana.
Pertama, Anda perlu mengambil output scriptnames
dan memasukkannya ke dalam buffer.
Anda dapat menggunakannya :redir
untuk 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, :scriptname
output yang terlalu panjang untuk dipindai dengan mata Anda sendiri mungkin merupakan gejala dari masalah yang lebih dalam.
:scriptnames
lebih panjang dari Magna Carta, Anda mungkin mempertimbangkan untuk menginstal scriptease Tim Pope . Ini menyediakan fungsi :Scriptnames
yang 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.
NERDTree
meletakkan semua fungsinya dalam satu file, agar outputnya :scriptnames
singkat? Apakah itu membuatnya menjadi plugin tertulis yang lebih baik?