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 :filter
comando es un enfoque simple de una línea para esto.
:filter /indent/ scriptnames
Solo mostraría líneas que coincidan con el patrón indent
de la salida del :scriptnames
comando.
Veo :redir
soluciones 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í. :filter
Es conveniente de usar en el momento y muy simple.
Primero, necesitas tomar la salida scriptnames
y ponerla en un búfer.
Puedes usar :redir
para 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 :scriptname
resultado que es demasiado largo para escanearse con sus propios ojos puede ser un síntoma de problemas más profundos.
:scriptnames
es más larga que Magna Carta, podrías considerar instalar el guión de Tim Pope . Proporciona una función :Scriptnames
que 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.
NERDTree
debería poner todas sus funciones en un solo archivo, para mantener la salida de :scriptnames
corto? ¿Eso lo convertiría en un complemento mejor escrito?