12

我的 .vimrc 中有以下映射,用于映射控制键 + 1、2、3.. 用于切换选项卡。我在 ubuntu 11.10 中使用 gnome 终端,控制键映射似乎不起作用。谁能告诉我做错了什么。

VIM - Vi 改进版 7.3.154

map <C-S-]> gt
map <C-S-[> gT
map <C-1> 1gt
map <C-2> 2gt
map <C-3> 3gt
map <C-4> 4gt
map <C-5> 5gt
map <C-6> 6gt
map <C-7> 7gt
map <C-8> 8gt
map <C-9> 9gt
map <C-0> :tablast<CR>
syntax on
set shiftwidth=2
4

1 回答 1

19

首先确保您的终端仿真器(Gnome Terminal)不会为了自己的功能而吞下组合键;默认情况下Ctrl+ number 切换选项卡。但是恐怕您仍然无法使用所有这些组合...

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

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

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

于 2013-04-06T10:36:59.840 回答