Respostas:
Você poderia fazer :
:redir => scriptn | sil exe 'scriptnames' | redir end | echo(system('grep pattern',scriptn))
O que faz :
: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`
O :filter
comando é uma abordagem simples e de uma linha para isso.
:filter /indent/ scriptnames
Mostraria apenas as linhas correspondentes ao padrão indent
da saída do :scriptnames
comando.
Eu sempre vejo :redir
soluções orientadas para perguntas como essas, que são boas e oferecem muito poder e opções, mas acho que elas são um pouco exageradas quando, na maioria das vezes, você só precisa verificar rapidamente se há alguma coisa. :filter
é conveniente usar no momento e simples.
Primeiro, você precisa pegar a saída scriptnames
e colocá-la em um buffer.
Você pode usar :redir
para isso:
: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'
Dito isto, uma :scriptname
saída muito longa para ser digitalizada com seus próprios olhos pode ser um sintoma de problemas mais profundos.
:scriptnames
for maior que a Magna Carta, você poderá instalar o scriptease de Tim Pope . Ele fornece uma função :Scriptnames
que coloca todo esse lixo em uma lista de correções rápidas. Lá, você pode pesquisar o conteúdo do seu coração, salvá-lo em um arquivo ou acessar os scripts correspondentes.
NERDTree
deve colocar todas as suas funções em um único arquivo, a fim de manter a saída :scriptnames
curta? Isso tornaria um plugin melhor escrito?