issue: you want to find and replace across multiple lines
fix: \_^ maps a begining of line anywhere in search pattern
e.g.:
text:
------
line 1 line 1 line 1
line 2
line 3 line 3
line 4
------
cmd:
-----
%s/line 1\_.*line 2/foo/ should return
----
should return:
------
foo
ine 3 line 3
line 4
-----
hint: use "vim *.file_ext " to open a bunch of files at once and then you should be able to search across all opened files. otherwise install "cream" (vim configuration). it can search across multiple files with a gui.