Bagaimana seseorang mencari pola dalam output perintah ex? Misalnya, bagaimana mencari pola nama file di output :scriptnames
perintah? Dalam bantuan untuk semua rasa grep
dan vimgrep
hanya ada {file}
sebagai tempat untuk melakukan pencarian.
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:Yang mengatakan,
:scriptname
output yang terlalu panjang untuk dipindai dengan mata Anda sendiri mungkin merupakan gejala dari masalah yang lebih dalam.sumber
: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?