Как искать шаблон в выводе команды ex? Например, как искать шаблон имени файла в выводе :scriptnames
команды? В справке все ароматы grep
и vimgrep
есть только {file}
как место, где выполнить поиск.
Как искать шаблон в выводе команды 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
для этого:
: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'
Тем не менее, :scriptname
вывод, который слишком длинный для сканирования своими глазами, может быть признаком более глубоких проблем.
:scriptnames
длиннее, чем Великая хартия вольностей, вы можете рассмотреть возможность установки сценария Тима Попа . Он предоставляет функцию, :Scriptnames
которая помещает весь этот мусор в список быстрых исправлений. Там вы можете найти его по своему усмотрению, сохранить его в файл или перейти к соответствующим сценариям.
NERDTree
чтобы все функции были помещены в один файл, чтобы вывод был :scriptnames
коротким? Это сделало бы это лучше написанным плагином?