Odpowiedzi:
Mógłbyś:
:redir => scriptn | sil exe 'scriptnames' | redir end | echo(system('grep pattern',scriptn))
Co to robi:
: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`
:filterKomenda jest podejście prosta, jedna linia do tego.
:filter /indent/ scriptnames
Wyświetla tylko wiersze pasujące do wzorca indentz danych wyjściowych :scriptnamespolecenia.
:redirCzęsto widzę zorientowane na takie rozwiązania pytania, które są w porządku i oferują dużą moc i opcje, ale czuję, że są nieco przesadzone, gdy częściej niż nie, musisz tylko szybko sprawdzić, czy coś tam jest. :filterjest wygodny w użyciu w tej chwili i bardzo prosty.
Najpierw musisz pobrać wynik scriptnamesi umieścić go w buforze.
Możesz użyć :redirdo tego:
: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'
To powiedziawszy, :scriptnamewyjście, które jest zbyt długie, aby można je zeskanować na własne oczy, może być objawem głębszych problemów.
:scriptnamesjest dłuższe niż Magna Carta, możesz rozważyć zainstalowanie skryptu Tima Pope'a . Zapewnia funkcję, :Scriptnamesktóra umieszcza wszystkie te śmieci na liście szybkich poprawek. Możesz tam przeszukać zawartość swojego serca, zapisać ją w pliku lub przejść do odpowiednich skryptów.
NERDTreeaby wszystkie jego funkcje umieścić w jednym pliku, aby skrócić wynik :scriptnames? Czy dzięki temu byłaby to lepiej napisana wtyczka?