Vim 如何在单击enter时始终清除hlsearch?

Vim 如何在单击enter时始终清除hlsearch?,vim,mapping,Vim,Mapping,现在我正在使用: nnoremap <cr> :nohlsearch<cr><cr>k 但在我按下回车键后,我的光标会转到行的开头 我有额外的k,因为我想使用默认行为,例如,当我尝试在Ack results quickview中打开文件时。如果您希望Enter保留默认行为,则此映射应该处理它 nnoremap <CR> :nohlsearch<CR><CR> 它关闭搜索高亮显示,向下移动光标,并且仅适用于正常模式。如果您

现在我正在使用:

nnoremap <cr> :nohlsearch<cr><cr>k
但在我按下回车键后,我的光标会转到行的开头


我有额外的k,因为我想使用默认行为,例如,当我尝试在Ack results quickview中打开文件时。

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

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

它关闭搜索高亮显示,向下移动光标,并且仅适用于正常模式。

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

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

它关闭搜索高亮显示,向下移动光标,并且仅适用于正常模式。

另一种方法是在“快速修复”窗口和命令行窗口中局部覆盖新行为,其中具有特殊含义:

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

另一种方法是局部重写quickfix窗口和命令行窗口中的新行为,其中具有特殊含义:

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

你说在同一位置禁用光标是什么意思?我的意思是保持在我单击之前的相同位置,为什么在映射中有k?你真的了解它的功能吗,还是你只是从某个地方盲目地复制它?我做的一件事是用来清除hl,它似乎工作得很好。我只是这样做了,它会清除它:是的,但我曾经有输入:你说在相同的位置禁用光标是什么意思?我的意思是保持在相同的位置,因为我单击了为什么你在映射中有k?你真的了解它的功能吗,还是你只是从某个地方盲目地复制它?我做的一件事是用来清除hl,它似乎工作得很好。我只是这样做了,它会清除它:是的,但我以前有输入:但我想保留默认的输入行为。更新了我的答案。我第一次错过了那部分。抱歉:但我想保留默认输入行为。更新了我的答案。我第一次错过了那部分。对不起的: