在我的gvim下,我使用< C-Tab>和< C-S-Tab>切换缓冲区。然而,在我的vim cygwin / mintty下,这些映射不起作用。
如果我尝试< C-V>< C-Tab>与$vim -u NONE
,我明白了:
[1;5I
< C-S-Tab>的
[1;6I
如何为这些密钥代码制作映射?
此外,如果我执行:unmap <C-Tab>
并在正常模式下按Ctrl + Tab,我将进入插入模式。
有任何线索吗?
答案 0 :(得分:2)
您可以尝试像这样设置terminal's keycodes to vim's keycodes:
set <c-tab>=^[[1;5I
或者您可能需要找到一个无法使用的密钥,例如<f13>
,并将其映射到终端代码,然后将该密钥映射到<c-tab>
。像这样:
set <f13>=^[[1;5I
map <f13> <c-tab>
map! <f13> <c-tab>
现在我必须提醒您,如果您的终端没有向vim发送唯一的密钥代码,这种方法可能无效。
我个人会简单地避免这种映射,并使用类似[b
和]b
的东西来移动缓冲区。 Tim Pope的Unimpaired提供了这些精确的映射和一些非常方便的映射。
或者我建议不要一次移动一个缓冲区。有更好的方法直接进入缓冲区:
mA
{并返回'A
<c-6>
转到上一个缓冲区(称为替代缓冲区)<c-]>
:b
和:sb
可以使用部分文件名和整数。例如:b foo
和:b foo*bar
如需更多帮助,请参阅:
:h tags-and-searches
:h cscope
:h ctrl-6
:h m
:h :b
答案 1 :(得分:0)
找到适合我的解决方案。
MinTTY使用Ctrl + Tab和Shift + Ctrl + Tab切换会话(当你打开多个薄荷窗口时)。
首先,您需要通过进入选项&gt;来禁用该行为。键。在那里你禁用了与Ctrl + Tab相关的选项
然后你的vim配置应该可以工作。
注意,您也可以将SwitchShortcuts=no
添加到~/.minttyrc
,而不是使用mintty的选项菜单来禁用此快捷方式。
我在mintty wiki上找到了这些说明,屏幕上有一个关于Ctrl + Tab的部分。