00p*_*eus 10 vim incremental-search
在vim中使用增量搜索时,光标会立即转到搜索词的下一个匹配项.Emacs具有类似的增量搜索功能.但是,有一个emacs isearch的功能,我觉得非常有用,我真的很想在vim中.在emacs中,如果键入:
<ctrl-s>word
它会立即转到"word",就像vim增量搜索一样.在emacs中,您现在可以键入其他内容<ctrl-s>以移至"word"的下一个结果事件,而在emacs中,这不会结束您的增量搜索会话.要在vim中执行相同操作,您必须点击<cr>,结束搜索词,然后点击n以转到下一个搜索结果.因为emacs不会结束搜索会话,所以您可以执行以下操作:
<ctrl-s>word<ctrl-s><ctrl-s>more
这样,一旦你靠近你想去的地方,你就可以"进入"你的搜索,结果非常有用!
有没有办法让vim做同样的事情?
下面的两个映射让我点击<Tab>或<S-Tab>跳转到下一个或上一个匹配而不离开增量搜索:
" needed for mapping <Tab> in command-line mode
set wildcharm=<C-z>
cnoremap <expr> <Tab> getcmdtype() == "/" \|\| getcmdtype() == "?" ? "<CR>/<C-r>/" : "<C-z>"
cnoremap <expr> <S-Tab> getcmdtype() == "/" \|\| getcmdtype() == "?" ? "<CR>?<C-r>/" : "<S-Tab>"
Run Code Online (Sandbox Code Playgroud)