Сразу же я не могу вспомнить, есть ли у vim возможность выполнять многострочное сопоставление. Если это так, вы можете указать новые строки в шаблоне поиска. В Perl это выглядело бы примерно так (я быстро вынул это, не просматривая многострочное регулярное выражение, поэтому у меня может быть неправильный синтаксис, но он достаточно близок, чтобы служить примером).
/(pattern)(\n(pattern)*){4}/m
Это будет искать 'pattern', затем 4 строки, которые могут содержать или не содержать 'pattern'.
Проблема в том, что если у вас есть два блока, которые перекрываются, я думаю, что этот поиск запутается.
Другая вещь, которую вы могли бы сделать, это определить макрос vim, который будет искать, а затем двигаться вниз на 5 строк.
Макрос определяется с помощью + q +, затем выполняется с помощью + @ +. Так что для вашего примера «поиск шаблона», используя «t» как, вы бы сделали что-то вроде этого:
<esc>qt # start macro 't'
/pattern # search for 'pattern'
5j # move down 5 lines
<esc>q # end macro
Затем вы начинаете с верхней части документа и многократно нажимаете '@ t'