如何在点击进入时始终清除hlsearch?

时间:2013-01-08 12:22:18

标签: vim mapping

现在我正在使用:

nnoremap <cr> :nohlsearch<cr><cr>k

但是在我按下Enter后,我的光标移到了行的开头。

我有额外的<cr>k,因为我想使用默认的<Enter>行为,例如当我尝试在Ack结果快速浏览中打开文件时。

2 个答案:

答案 0 :(得分:2)

如果您希望Enter保持默认行为,则此映射应该处理它。

nnoremap <CR> :nohlsearch<CR><CR>

关闭搜索突出显示,向下移动光标,仅适用于普通模式。

答案 1 :(得分:1)

另一种方法是在quickfix窗口和命令行窗口中本地覆盖新行为,其中<CR>具有特殊含义:

:nnoremap <CR> :nohlsearch<CR>
:autocmd BufReadPost quickfix nnoremap <buffer> <CR> <CR>
:autocmd CmdwinEnter * nnoremap <buffer> <CR> <CR>