我想使用shift-tab进行自动完成并直观地移动代码块.我一直指的是
Make_Shift-Tab_work.该链接讨论了映射^ [[Z到shift-tab.但是我没有得到^ [[Z当我按下shift-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来查看当我按下shift-tab时X收到的内容.但是我的系统上没有xev.
有没有其他方法我可以捕获vim中的shift-tab
最佳答案 该链接专门讨论了在插入模式下按Ctrl vShift Tab时获取^ [[Z].如果您不使用Ctrl v,那么Vim的行为就像按Tab键一样.
让Vim识别< S-Tab>的最简单方法是直接将t_kB选项设置为终端发送的转义序列,而不是弄乱地图.
作为快速测试,请在运行的Vim中尝试:
:set t_kB=Ctrl+vEsc[Z
:imap <S-Tab> foo
现在,当您在插入模式下按Shift键时,应插入foo.如果可行,您可以通过将以下内容添加到vimrc来使更改永久化.
exe 'set t_kB=' . nr2char(27) . '[Z'