如何在Vim中映射Shift-Tab? Cygwin,Windows cmd.exe

问题描述

| 我在这里看到一些有关使Shift-Tab在vim中运行的条目,但是当它们在Cygwin中运行在Windows命令提示符下时,它们都无法解决失败。在这种环境下,Shift-Tab对我来说就像未移动的选项卡一样工作,而我重新映射的尝试失败了:
:imap <S-Tab> ^D
[这是一个真实的Ctrl-D,在其前面输入Ctrl-V]
:imap
[在此处输入Ctrl-V,Shift-Tab;插入了制表符] 因此,似乎Shift修饰符被忽略了。关于如何进行的任何想法?谢谢。     

解决方法

这在Cygwin控制台中不起作用,因为它为Tab和Shift + Tab发送相同的键码::2ѭ。 您可能需要安装Cygwin的mintty终端模拟器,该模拟器发送Shift + Tab的标准键代码:ѭ3:。     ,建议您不要删除Cygwin版本,而应删除它并安装本机版本。这样,即使从bash shell启动Vim,您也可以映射Shift-Tab而不会出现问题。     ,我现在没有窗户,但是看看您的vimrc是否包含
behave mswin
source ...\\mswin.vim
在这种情况下,
:e +g/mswin/norm!\\ 0i\" $MYVIMRC
应该自动将其注释掉。重新启动vim,并检查是否存在现有的映射:
:verbose map <S-Tab>
将向您显示任何现有映射以及上一次定义的位置,因此您可以找到导致这种情况的脚本/插件(
:he :verbose-cmd
) 高温超导 更新评论: 好吧,Blimey,事实证明,使用Win32控制台神奇地无法实现Shift-Tab。没注意到。 也许是因为我 如今,使用Mintty可以提供更好的体验(例如Unix,例如复制粘贴,真正的替代终端,更高的性能以及重新连接屏幕会话) 可能已经调整了CompletionChar的设置,尽管对我来说这似乎也很松散 你可以尝试薄荷味吗?我想我多年来已经注意到了这种毛茸茸的不兼容性。但是,你永远不会知道:)