我正在尝试映射<Esc>
以关闭Vim中的搜索突出显示。问题是终端使用+Esc
模拟的密钥会受到影响。
终端发送的字符比我输入的速度快得多。是否有办法在vim中映射键+超时?
4年前提出了同样的问题,答案是无法完成。这(仍然)是真的吗?
答案 0 :(得分: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>
答案 1 :(得分:2)
你的麻烦是由一些插件或其他本机vim处理这个罚款引起的。使用vim --noplugin
启动vim,或者如果这还不够,请使用vim -u NONE
(或gvim -U NONE
)和:source
绕过您的vimrc:
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>
我从未见过,也无法重现您所描述的干扰,因此我不知道造成这种干扰的原因,我建议您使用二进制搜索插件集。