Ответ 1
Проблема связана с задержкой запуска tmux. Ниже приведена настройка tmux:
set -s escape-time 0
В MacVim и терминале Vim все работает нормально, и у меня нет проблем. Как только я прыгаю в tmux и запускаю Vim там, клавиша запуска начинает иметь задержку около 1 секунды и появляется в Vim как ^[
.
Я удалю ключ эвакуации, чтобы выйти из режима вставки, но примерно за 1 секунду задержка произойдет до того, как Vim ответит и вернет меня в нормальный режим.
Если я набираю Ctrl+o
, чтобы временно перейти в режим вставки, он сразу же появляется в нормальном режиме без задержки.
Если я наберу jj
, чтобы перейти в обычный режим (ярлык, который я установил), он по-прежнему занимает около секунды. Это заставляет меня думать, что проблема может быть с Vim, а не tmux
Я уже установил set -sg escape-time 0
в tmux.conf, но он ничего не помог.
Любые идеи?
Проблема связана с задержкой запуска tmux. Ниже приведена настройка tmux:
set -s escape-time 0
Проблема заключается в том, что escape является первым символом всех функциональных клавиш, стрелками, щелчками мыши (они отправляются на vim терминалом с использованием некоторой escape-последовательности), поэтому vim ждет следующего символа не более ttimeoutlen (' timeoutlen 'if' ttimeoutlen 'равно -1) миллисекундах, чтобы быть уверенным, что вы имели в виду нажатие escape, а не, например, <F1>
. Невозможно избавиться от этой задержки, но вы можете сузить ее:
set timeout timeoutlen=1000 ttimeoutlen=100
. Таким образом, вы будете ждать 1 секунду, чтобы завершить отображение, но только 0,1 секунды для завершения терминала для отправки escape-последовательности.