Вы можете сделать это
vimgrep /sometext/g `find ~ \( -regextype posix-extended -regex '.*py' \) -not path ~/tmp`
Существует нечто, называемое выражением backtick, которое предоставляет аргументы для vimgrep: http://vimcasts.org/episodes/populating-the-arglist/
Здесь команда find
передается в виде выражения backtick, и команда find может исключать пути из vigrep.
Фактическое условие поиска длинное, но вам не нужно вводить все это. Я обычно просто использую q:
, чтобы вызвать предыдущие команды ex
, выполнить поиск предыдущей команды поиска и изменить ее для следующего поиска.