जवाबों:
तुम यह कर सकते थे:
:redir => scriptn | sil exe 'scriptnames' | redir end | echo(system('grep pattern',scriptn))
यह क्या करता है:
: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`
:filter
कमांड इस के लिए एक सरल, एक-लाइन दृष्टिकोण है।
:filter /indent/ scriptnames
केवल कमांड indent
के आउटपुट से पैटर्न से मेल खाती लाइनें दिखाएगा :scriptnames
।
मैं :redir
अक्सर इन जैसे प्रश्नों के लिए मुख्य समाधान देखता हूं , जो ठीक हैं और बहुत अधिक शक्ति और विकल्प प्रदान करते हैं, लेकिन मुझे लगता है कि जब वे अधिक से अधिक बार नहीं होते हैं, तो वे थोड़े ओवरकिल होते हैं, आपको बस यह जांचने की आवश्यकता है कि क्या कुछ है। :filter
पल और मृत सरल में उपयोग करने के लिए सुविधाजनक है।
सबसे पहले, आपको इसके आउटपुट को हथियाने scriptnames
और इसे बफर में डालने की आवश्यकता है ।
आप इसके लिए उपयोग कर सकते हैं :redir
:
: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'
उस ने कहा, एक :scriptname
आउटपुट जो आपकी अपनी आँखों से स्कैन करने के लिए बहुत लंबा है, गहरी समस्याओं का एक लक्षण हो सकता है।
:scriptnames
मैग्ना कार्टा से अधिक लंबा है तो आप टिम पोप के शास्त्र को स्थापित करने पर विचार कर सकते हैं । यह एक फ़ंक्शन प्रदान करता है जो :Scriptnames
कि सभी कबाड़ को एक उपसर्ग सूची में रखता है। वहां आप इसे अपने दिल की सामग्री को खोज सकते हैं, इसे किसी फ़ाइल में सहेज सकते हैं, या संबंधित स्क्रिप्ट पर जा सकते हैं।
NERDTree
के आउटपुट को बनाए रखने के लिए अपने सभी कार्यों को एक ही फाइल में रखना चाहिए :scriptnames
? क्या यह इसे एक बेहतर लिखित प्लगइन बना देगा?