重新映射<esc>会中断vim中的<s-tab>映射

时间:2019-03-20 01:56:40

标签: vim

我在vimrc上有以下映射

nnoremap <TAB> gt
nnoremap <S-TAB> gT

然后我将ESC映射为以下突出显示的亮点:

noremap <silent> <ESC> :noh<return>

然后<S-TAB>将不再起作用。如果从<silent>映射中删除<ESC>,则在按:noh时会看到<S-TAB>。我不知道<S-TAB><ESC>是否有共同点。我在Linux上,在gnome-terminal上使用vim。

1 个答案:

答案 0 :(得分:2)

假设<S-TAB><ESC>有共同点是正确的。 S-TAB是转义前缀的键码。

ESC的键码为^[,而S-TAB的键码为^[[Z。您可以看到S-TAB键码的第一部分与ESC键码匹配。

查看full table of combinations here

因此,您不能重新映射转义键,同时还要重新映射其中的一个键控代码。选择不同的键来清除突出显示,或者选择不同的方式切换标签。