重新映射标签弹出键

4

我想将Ctrl + [重新映射为:pop。我已经将Ctrl + t重新绑定为:tabe,将Ctrl + Shift + T绑定到新的shell标签页。我的解决方案如下:

nnoremap <C-[> :pop

但是当我这样做时,几乎每次按键甚至鼠标点击都会出现:pop

这个想法是将此键映射到标签列表的上一级。与Ctrl + ]相反。


4
<esc>键和<c-[>键是无法区分的。请参考:h escape。你需要想出一个不同的映射方案。 - Peter Rincker
@PeterRincker 如果您将此移至答案,我会接受它。这就是导致问题的原因。 - Brombomb
1个回答

6
在终端中,<Esc><C-[>是相同的,都由相同的键码表示。由于键盘输入的内部处理方式,今天无法区分这个组合键以及许多其他组合键(例如Ctrl + Letter与Ctrl + Shift + Letter),即使在GVIM中也是如此。这是一个已知的痛点,并且是vim_dev和#vim IRC频道上各种讨论的主题。一些人(首要是Paul LeoNerd Evans)希望解决这个问题(即使对于支持此功能的终端中的控制台Vim),并提出了各种建议,参见http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8。但是,截至今天,尚未出现补丁或志愿者,尽管许多人表达了希望在未来的Vim 8主要版本中实现此功能的愿望。

感谢您的线程。这将是Vim的一个很好的补充。 - Peter Rincker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接