Answers:
此问题已通过http://vim.wikia.com/wiki/Search_across_multiple_lines解决。包含的功能可以满足我的需求。
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>
然后,您可以使用进行多行搜索:S hello world
,它将转换为hello\s\+world
并进行搜索。另一个不错的功能是,这还将把这个新搜索添加到搜索历史中。这使您可以返回并q/
根据需要修改搜索。也可以用进行替换:%s//new thing/g
。不利的是,incsearch
如果您启用了它,它就不会使用。
hello\_s\+world
知道它们之间是否可以有多个空格字符。