1

我正在尝试映射CTRL-+:tabn. 但它不起作用。

inoremap <C-+> :tabn<CR>
inoremap <C--> :tabp<CR>
nnoremap <C-+> :tabn<CR>
nnoremap <C--> :tabp<CR>

它在插入模式下不起作用,在正常模式下也不起作用。

如果我尝试以下(不带CTRL),那么它可以工作,但是当我处于插入模式时我无法切换选项卡:

nnoremap + :tabn<CR>
nnoremap - :tabp<CR>

如何映射CTRL-+:tabn以便在插入模式下切换选项卡?

4

2 回答 2

2

由于键盘输入在内部处理的方式,不幸的是,这在今天通常是不可能的,即使在 GVIM 中也是如此。某些组合键,如Ctrl+ 非字母无法映射,Ctrl+ 字母与Ctrl+ Shift+ 字母无法区分。(除非您的终端为它发送一个不同的termcap代码,而大多数人不会。)在插入或命令行模式下,尝试键入组合键。如果没有任何反应/插入,则不能使用该组合键。这也适用于<Tab>/ <C-I>, <CR>/ <C-M>/ <Esc>/<C-[>等(唯一的例外是<BS>/ <C-H>。)这是一个已知的痛点,也是 vim_dev 和 #vim IRC 频道上各种讨论的主题。

对我来说(在英文 Windows GVIM 中),可以Ctrl将+映射-<C-_>

一些人(最重要的是 Paul LeoNerd Evans)想要解决这个问题(即使是支持此功能的终端中的控制台 Vim),并提出了各种建议

但是截至今天,还没有补丁或志愿者出现,尽管许多人表示希望在未来的 Vim 8 主要版本中拥有它。

于 2013-02-15T12:34:19.070 回答
1

Vim 只能检测(并因此映射)少数可控制打印的键和弦,这些都列在FAQ中。不幸的是<CTRL-+><CTRL-->在这个列表中没有提到,所以看起来这样的映射是不可能的。

关于是否重新设计 Vim 的关键模型的讨论正在进行中,但这可能要等到 Vim 8.0。我并不乐观。

于 2013-02-15T12:31:21.213 回答