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`
:filter
Komenda jest podejście prosta, jedna linia do tego.
:filter /indent/ scriptnames
Wyświetla tylko wiersze pasujące do wzorca indent
z danych wyjściowych :scriptnames
polecenia.
:redir
Czę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. :filter
jest wygodny w użyciu w tej chwili i bardzo prosty.
Najpierw musisz pobrać wynik scriptnames
i umieścić go w buforze.
Możesz użyć :redir
do 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, :scriptname
wyjście, które jest zbyt długie, aby można je zeskanować na własne oczy, może być objawem głębszych problemów.
:scriptnames
jest dłuższe niż Magna Carta, możesz rozważyć zainstalowanie skryptu Tima Pope'a . Zapewnia funkcję, :Scriptnames
któ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.
NERDTree
aby wszystkie jego funkcje umieścić w jednym pliku, aby skrócić wynik :scriptnames
? Czy dzięki temu byłaby to lepiej napisana wtyczka?