Réponses:
Vous pourriez faire :
:redir => scriptn | sil exe 'scriptnames' | redir end | echo(system('grep pattern',scriptn))
Ce qu'il fait :
: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`
La :filter
commande est une approche simple et en une seule ligne pour cela.
:filter /indent/ scriptnames
N'afficherait que les lignes correspondant au modèle indent
de la sortie de la :scriptnames
commande.
Je vois :redir
souvent des solutions orientées à des questions comme celles-ci, qui sont très bien et offrent beaucoup de puissance et d'options, mais je pense qu'elles sont un peu exagérées lorsque le plus souvent, il vous suffit de vérifier rapidement si quelque chose est là. :filter
est pratique à utiliser dans le moment et très simple.
Tout d'abord, vous devez saisir la sortie de scriptnames
et la mettre dans un tampon.
Vous pouvez utiliser :redir
pour cela:
: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'
Cela dit, une :scriptname
sortie trop longue pour être scannée de vos propres yeux peut être le symptôme de problèmes plus profonds.
:scriptnames
est plus longue que Magna Carta, vous pourriez envisager d'installer le scriptease de Tim Pope . Il fournit une fonction :Scriptnames
qui met toutes ces ordures dans une liste de correctifs. Là, vous pouvez le rechercher selon le contenu de votre cœur, l'enregistrer dans un fichier ou accéder aux scripts correspondants.
NERDTree
devrait mettre toutes ses fonctions dans un seul fichier, afin de garder la sortie de :scriptnames
court? Serait-ce un meilleur plugin écrit?