我的vimrc中的映射<C-Tab>在Ubuntu中失败

nfm*_*nfm 23 vim keyboard-shortcuts keymapping

我想将ctrl-tab映射到:tabn,并将ctrl-shift-tab映射到:tabp.

我让它在Windows XP中用于gVim,但在Ubuntu 9.10中将它移动到我的.vimrc并且它不起作用(vim 7.2).

这是我的.vimrc的相关部分:

nmap <C-Tab> :tabn<CR>
nmap <C-S-Tab> :tabp<CR>
nmap <C-t> :tabnew<CR>
Run Code Online (Sandbox Code Playgroud)

<C-t>工作正常,所以映射ctrl键似乎不是一个问题.我真的不知道从哪里开始!这可能会出现什么问题,考虑到它在Windows下运行良好?

更多信息:我正在运行Ubuntu 9.10服务器,xorgfluxbox安装在顶部.我正在使用xterm我的终端.

Ctrl-tab映射在fluxbox中工作:可以在窗口管理器中成功映射ctrl-tab和ctrl-shift-tab; 如果我开始标记我的xterms,我可以按预期循环浏览这些标签.我不确定这意味着什么,但我认为问题不是窗口管理器/ xorg问题.

这些键似乎没有映射到别的东西,并且可以一起成功识别.

答:这是一个xterm问题 - 它不会拦截并发送一个唯一的密钥代码ctrl-tab.有关详情,请参阅下面的完整答案.

nfm*_*nfm 31

这绝对是一个终极问题.

显然xterm和许多其他终端模拟器默认情况下不拦截ctrl-tab,只发送一个标签信号.这个Vim wiki页面声明ctrl-tab不适用于xterm,Eterm和aterm.还有这个Arch linux表单帖子声称这是一个终端问题.

通过将此博客文章中的信息与此vim wiki相结合,可以找到该解决方案,用于映射密钥代码.它的要点是你需要配置xterm来拦截并在你的.Xresources文件中为ctrl-tab和ctrl-shift-tab发送一个唯一的代码,然后.vimrc通过一些时髦的映射将其破解成你的.

简而言之,它很难做到(仍然没有在这里工作)因为xterm和vim都需要被欺骗去做.我个人会继续使用另一个映射...这个问题是一个严肃的时间傻瓜,我不认为值得努力让它工作!

谢谢你的帮助.