我想使用shift-tab
进行自动完成并直观地移动代码块。我指的是Make_Shift-Tab_work。该链接涉及将^[[Z
映射到shift-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
答案 0 :(得分:2)
该链接特别谈到按 Ctrl + v Shift + Tab ^[[Z >在插入模式下。如果你不使用 Ctrl + v ,那么Vim的行为就像按下 Tab 一样。
让Vim识别<S-Tab>
的最简单方法是直接将t_kB
选项设置为终端发送的转义序列,而不是弄乱地图。
作为快速测试,请在正在运行的Vim中尝试:
:设置t_kB = Ctrl + v Esc [Z
:imap&lt; S-Tab&gt; FOO
现在,当您在插入模式下按 Shift + Tab 时,应插入foo
。如果可行,您可以通过将以下内容添加到vimrc来永久更改。
exe 'set t_kB=' . nr2char(27) . '[Z'