Подтвердить что ты не робот

Tmux и Vim: клавиша Escape появляется как ^ [и имеет длительную задержку

В MacVim и терминале Vim все работает нормально, и у меня нет проблем. Как только я прыгаю в tmux и запускаю Vim там, клавиша запуска начинает иметь задержку около 1 секунды и появляется в Vim как ^[.

Я удалю ключ эвакуации, чтобы выйти из режима вставки, но примерно за 1 секунду задержка произойдет до того, как Vim ответит и вернет меня в нормальный режим.

Если я набираю Ctrl+o, чтобы временно перейти в режим вставки, он сразу же появляется в нормальном режиме без задержки.

Если я наберу jj, чтобы перейти в обычный режим (ярлык, который я установил), он по-прежнему занимает около секунды. Это заставляет меня думать, что проблема может быть с Vim, а не tmux

Я уже установил set -sg escape-time 0 в tmux.conf, но он ничего не помог.

Любые идеи?

4b9b3361

Ответ 2

Проблема заключается в том, что escape является первым символом всех функциональных клавиш, стрелками, щелчками мыши (они отправляются на vim терминалом с использованием некоторой escape-последовательности), поэтому vim ждет следующего символа не более ttimeoutlen (' timeoutlen 'if' ttimeoutlen 'равно -1) миллисекундах, чтобы быть уверенным, что вы имели в виду нажатие escape, а не, например, <F1>. Невозможно избавиться от этой задержки, но вы можете сузить ее:

set timeout timeoutlen=1000 ttimeoutlen=100

. Таким образом, вы будете ждать 1 секунду, чтобы завершить отображение, но только 0,1 секунды для завершения терминала для отправки escape-последовательности.