2

我正在尝试映射<Esc>以关闭 Vim 中的搜索突出显示。问题是终端模拟的键+Esc受到影响。

终端发送字符的速度比我输入的快得多。有没有办法在vim中映射键+超时?

4年前问过同样的问题,答案是做不到。这(仍然)是真的吗?

映射:nohlsearch 转义键

4

2 回答 2

2

您的麻烦是由某些插件或其他引起的,本机 vim 可以很好地处理这个问题。用 启动 vim vim --noplugin,或者如果这还不够,那么用vim -u NONE(or gvim -U NONE) 绕过你的 vimrc 并且:source这个:

set nocp                     " life's too short for pure vi-compatibility mode
set timeout ttimeout         " enable separate mapping and keycode timeouts
set timeoutlen=250           " mapping timeout 250ms  (adjust for preference)
set ttimeoutlen=20           " keycode timeout 20ms
nno <ESC> :nohls<CR>

我从未见过也无法重现您所描述的干扰,所以我不知道是什么原因造成的,我只能建议使用您的插件集进行二进制搜索。

于 2014-06-08T19:39:41.263 回答
2

是的,由于 ZyX 在他的回答中给出的原因,这仍然是不可能的。

<Esc>是“特殊的”,因为它的行为介于“普通”键a(您可以将其映射到您想要的任何内容)和修饰键(终端使用它来表示许多特殊键,例如<Up>)之间。

安全地映射<Esc>以做任何其他/超出可能的事情<Esc> 但您必须使用noremap所有受影响的键。这是我vimrc减轻这种副作用的方法:

nnoremap <Esc>A <up>
nnoremap <Esc>B <down>
nnoremap <Esc>C <right>
nnoremap <Esc>D <left>
inoremap <Esc>A <up>
inoremap <Esc>B <down>
inoremap <Esc>C <right>
inoremap <Esc>D <left>
于 2014-06-08T09:54:53.703 回答