Yog*_*ora 5 x11 keyboard vim xterm sunos
我想用于shift-tab
自动完成和视觉上移动代码块。我一直指的是Make_Shift-Tab_work。该链接讨论了映射^[[Z
到shift-tab
. ^[[Z
但当我按下时我不明白shift-tab
。在这种情况下我只是得到一个正常的tab
。
然后讨论如何使用xmodmap -pke | grep 'Tab'
映射 Tab 键。据此输出应该是
keycode 23 = Tab
or
keycode 23 = Tab ISO_Left_Tab
Run Code Online (Sandbox Code Playgroud)
不过我得到
keycode 22 = Tab KP_Tab
Run Code Online (Sandbox Code Playgroud)
如果我使用xmodmap -e 'keycode 22 = Tab ISO_Left_Tab'
之后xmodmap -pke | grep 'Tab'
,我仍然得到
keycode 22 = Tab KP_Tab
Run Code Online (Sandbox Code Playgroud)
这意味着跑步xmodmap -e 'keycode 22 = Tab ISO_Left_Tab'
没有任何效果。
最后,链接提到使用xev
来查看X
当我按下 时收到的内容shift-tab
。xev
但我的系统上没有。
有没有其他方法可以在vim中捕获shift-tab
该链接专门讨论了在插入模式下^[[Z
按Ctrl+ 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'
Run Code Online (Sandbox Code Playgroud)