У меня есть эти сопоставления в моих файлах инициализации для Vim:

nnoremap <S-Tab> <LT><LT>
vnoremap <S-Tab> <LT>gv

намерение состоит в том, чтобы быть в состоянии отступить с SHIFT - TAB. Это прекрасно работает в GVim и VsVim, но не работает в Vim, работающем внутри ConEmu.

Однако табуляция (например, через имена файлов) вперед с помощью TAB и назад с помощью SHIFT - TAB прекрасно работает в командной строке в ConEmu вне Vim, поэтому ConEmu должен что-то делать с последовательностью SHIFT - TAB , и я не лучше не нарушать поведение командной строки, если это возможно (хотя, если бы мне пришлось выбирать, я бы выбрал функциональность Vim).

У меня проблемы с определением того, что Вим думает увидеть для этой последовательности клавиш. Если я сделаю CTRL - v SHIFT - TAB, результат будет Î . Когда я выполняю char2nr() , я получаю 206 , и действительно, это похоже на символ Unicode 206. Этот результат 206 подтверждается :echo getchar() и вводом последовательности. Однако выполнение map Î <S-Tab> не работает.

Как я могу заставить мои отображения работать?

2 ответа2

1

Версия 141216 исправляет вашу проблему.

Кстати, ваш обходной путь больше не нужен, но использование нескольких keys Функция GuiMacro не оптимальна, лучше использовать сортировку keys("^[","[","Z") или просто print("\e[Z") .

0

Я нашел обходной путь. К сожалению, это нарушает возможность обратной навигации по именам файлов на консоли, вставляя вместо этого ^[[Z , поэтому я все еще ищу лучший ответ, чем этот. Тем не менее, это заставляет SHIFT - TAB работать в Vim без дальнейшей модификации конфигурации Vim. Я использовал функцию макросов ConEmu для отображения SHIFT - TAB в ConEmu на escape-последовательность Vim ^[[Z (см . :set t_kB), которую он по умолчанию уже интерпретирует как <S-Tab> . Макрос это keys("^["); keys("["); keys("Z") , как показано ниже.

макрос отображения в окне настроек ConEmu

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .