Este problema foi resolvido no link . Incluído é uma função que pode fazer o que eu preciso.
function! SearchMultiLine(bang, ...)
if a:0 > 0
let sep = (a:bang) ? '\_W\+' : '\_s\+'
let @/ = join(a:000, sep)
endif
endfunction
command! -bang -nargs=* -complete=tag S call SearchMultiLine(<bang>0, <f-args>)|normal! /<C-R>/<CR>
Em seguida, você pode fazer uma pesquisa em várias linhas usando :S hello world
e ele converterá isso em hello\s\+world
e pesquisará por ele. Outro recurso interessante é que isso também adicionará essa nova pesquisa ao histórico de pesquisa. Isso permite que você volte e modifique a pesquisa usando q/
, se necessário. Também pode ser usado para fazer substituições com :%s//new thing/g
. A desvantagem disso é que ele não usa incsearch
se você tiver ativado.