Как захватывать Shift-Tab в Vim
Вопрос
Я хочу использовать 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
в моей системе.
Есть ли другой способ, которым я могу захватить Shift-Tab в Vim
Решение
Ссылка разговаривает конкретно о получении ^[[Z
Когда вы нажимаете Ctrl+вниманиеСдвиг+Вкладка в режиме вставки. Если вы оставите Ctrl+внимание, Тогда Vim будет вести себя так, как будто вы нажали Вкладка.
Самый простой способ сделать VIM признать <S-Tab>
, чтобы напрямую установить t_kB
Возможность escape Sequence Ваш терминал отправляет, а не возиться с картами.
Как быстрый тест, попробуйте это в бегом VIM:
: установить T_KB =Ctrl+вниманиеEsc.Z.
: ИМПu003CS-Tab> фюра
Теперь, когда вы нажимаете Сдвиг+Вкладка В режиме вставки, foo
должен быть вставлен. Если это сработало, вы можете сделать изменение постоянным, добавив следующее в свой VIMRC.
exe 'set t_kB=' . nr2char(27) . '[Z'