Respuestas:
Podrías hacerlo :
:redir => scriptn | sil exe 'scriptnames' | redir end | echo(system('grep pattern',scriptn))
Que hace :
: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`
El :filtercomando es un enfoque simple de una línea para esto.
:filter /indent/ scriptnames
Solo mostraría líneas que coincidan con el patrón indentde la salida del :scriptnamescomando.
Veo :redirsoluciones orientadas a preguntas como estas a menudo, que están bien y ofrecen mucha potencia y opciones, pero siento que son un poco exageradas cuando la mayoría de las veces, solo necesita verificar rápidamente si hay algo allí. :filterEs conveniente de usar en el momento y muy simple.
Primero, necesitas tomar la salida scriptnamesy ponerla en un búfer.
Puedes usar :redirpara eso:
: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'
Dicho esto, un :scriptnameresultado que es demasiado largo para escanearse con sus propios ojos puede ser un síntoma de problemas más profundos.
:scriptnameses más larga que Magna Carta, podrías considerar instalar el guión de Tim Pope . Proporciona una función :Scriptnamesque pone toda esa basura en una lista de soluciones rápidas. Allí puede buscarlo al contenido de su corazón, guardarlo en un archivo o ir a los scripts correspondientes.
NERDTreedebería poner todas sus funciones en un solo archivo, para mantener la salida de :scriptnamescorto? ¿Eso lo convertiría en un complemento mejor escrito?