使用vim编写非代码时,我经常需要搜索可能由换行符而不是空格分隔的多个单词。
例如,我可能想要搜索“白宫”的出现,但有些事件可能在“白色”和“房子”之间有换行符。
我知道使用“\ _s”(例如“white \ _shouse”)可以进行这种多行搜索,但这很麻烦。我想替换搜索命令,以便将空格视为“\ _s”,而不必将其键入。
是否可以“重新映射”/ search命令?
答案 0 :(得分:1)
您至少有两个选择:
,s
到\_s
:,s
更容易输入:
cnoremap ,t \\_s
\s
替换所有出现的\_s
并使用它:
function Search(prompt) let searchstring=substitute(input(a:prompt), '\\\\s', '\\\\_s', 'g') return a:prompt.searchstring."\n" endfunction nnoremap <expr> <special> / Search('/')甚至
function Search(prompt) let searchstring=substitute(input(a:prompt), ' ', '\\\\_s', 'g') return a:prompt.searchstring."\n" endfunction nnoremap <expr> <special> / Search('/')(此函数用
\_s
)