Как искать шаблон в выводе команды ex? Например, как искать шаблон имени файла в выводе :scriptnames
команды? В справке все ароматы grep
и vimgrep
есть только {file}
как место, где выполнить поиск.
Вы могли бы сделать:
:redir => scriptn | sil exe 'scriptnames' | redir end | echo(system('grep pattern',scriptn))
Что оно делает :
: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
представляет собой простой, однострочный подход к этому.
:filter /indent/ scriptnames
Показывает только строки, соответствующие шаблону indent
из выходных данных :scriptnames
команды.
Я :redir
часто вижу ориентированные решения таких вопросов, которые хороши и предлагают много возможностей и возможностей, но я чувствую, что они немного излишни, когда чаще всего вам просто нужно быстро проверить, есть ли что-то. :filter
удобно использовать в данный момент и очень просто.
Во-первых, вам нужно получить выходные данные
scriptnames
и поместить их в буфер.Вы можете использовать
:redir
для этого:Тем не менее,
:scriptname
вывод, который слишком длинный для сканирования своими глазами, может быть признаком более глубоких проблем.источник
:scriptnames
длиннее, чем Великая хартия вольностей, вы можете рассмотреть возможность установки сценария Тима Попа . Он предоставляет функцию,:Scriptnames
которая помещает весь этот мусор в список быстрых исправлений. Там вы можете найти его по своему усмотрению, сохранить его в файл или перейти к соответствующим сценариям.NERDTree
чтобы все функции были помещены в один файл, чтобы вывод был:scriptnames
коротким? Это сделало бы это лучше написанным плагином?