4

我想shift-tab用于自动完成和可视化移动代码块。我一直在指Make_Shift-Tab_work。该链接谈论映射^[[Zshift-tab. ^[[Z但是当我按下时我没有得到shift-tab。在那种情况下,我只是得到一个正常tab的。

然后它讨论了使用xmodmap -pke | grep 'Tab' 映射选项卡键。据此,输出应该是

keycode 23 = Tab
or
keycode 23 = Tab ISO_Left_Tab

但是我得到

keycode  22 = Tab KP_Tab

如果我使用xmodmap -e 'keycode 22 = Tab ISO_Left_Tab'并且在那之后xmodmap -pke | grep 'Tab',我仍然得到

keycode  22 = Tab KP_Tab

这意味着运行xmodmap -e 'keycode 22 = Tab ISO_Left_Tab'没有效果。

最后,链接提到使用xev来查看X我按下时收到的内容shift-tab。但xev我的系统上没有。

有没有其他方法可以在 vim 中捕获 shift-tab

4

1 回答 1

2

该链接专门讨论了在插入模式下^[[ZCtrl+ vShift+时的获取。Tab如果你不加Ctrl+ v,那么 Vim 的行为就像你按下了 一样Tab

让 Vim 识别的最简单方法<S-Tab>是直接将t_kB选项设置为终端发送的转义序列,而不是弄乱地图。

作为一个快速测试,在运行的 Vim 中试试这个:

:set t_kB= Ctrl+ vEsc[Z
:imap <S-Tab> foo

现在,当您在插入模式下按Shift+时,应该会插入。如果可行,您可以通过将以下内容添加到您的 vimrc 来使更改永久生效。Tabfoo

exe 'set t_kB=' . nr2char(27) . '[Z'
于 2010-04-30T15:18:13.133 回答