Переключение в режим вставки в Vim и из него больше не происходит мгновенно, так как я использую tmux. После нажатия Escв режиме вставки, для выхода из режима вставки требуется заметное время. После нажатия Escи любой другой клавиши после этого переключатель переключается немедленно, и команда для клавиши, нажатой после Esc, выполняется. Есть идеи, что может вызвать это?
Конфигурация Vim не является проблемой, поскольку задержка не возникает, когда я запускаю Vim вне tmux, так что это, вероятно, как-то связано с tmux. Я использую Gnome-терминал, кстати.
Также стоит отметить, что, похоже, я не могу определить привязки клавиш в tmux Esc, мой план был привязать Escк:
bind Escape send-keys ^[
Увы, похоже, что привязка к Esctmux не работает. Та же проблема возникает и на экране.
источник
man tmux
, и команда не работает для меня.У меня была другая, но похожая проблема, которую я пытался решить, когда нашел эту страницу, поэтому я опубликую ее здесь на случай, если она будет полезна всем, кто ищет этот ответ и находит эту страницу таким же образом.
Проблема: режим vi в bash имеет задержку при переключении из режима вставки в командный режим
Решение: в вашем
~/.inputrc
файле добавьтеset keyseq-timeout n
гдеn
минимальное значение больше 0. поn
умолчанию 500 мс, что и является причиной задержки. Смотрите документацию здесь .Кроме того, если вы хотите узнать, в каком режиме вы находитесь, посмотрите на форк Баш Дилана Кали .
источник
0.01
и теперь он гораздо приятнее и быстрее. Спасибо!/etc/inputrc
чтобы сделать его доступным для всех пользователей.Похоже, вы используете отображение, которое начинается с ESC. Когда вы нажимаете клавишу ESC, vim должен подождать, чтобы увидеть, является ли следующая клавиша той, которая находится в отображении. Если это не так, он может немедленно продолжить.
Конфигурация vim может зависеть от терминала, поэтому тот факт, что это не происходит вне tmux, не имеет большого значения. Vim может запросить
$TERM
переменную среды и выбрать другую конфигурацию в зависимости от ее значения.Поскольку gnome-терминал использует AFAIK
xterm
в качестве значения$TERM
переменной, а tmux используетscreen
, я бы просмотрел все ваши файлы конфигурации vim на предмет настроек, которые используются только при$TERM
условии, что переменная равнаscreen
. Я предполагаю, что какой-то конфигурационный файл vim в вашей системе устанавливает сопоставления для обработки клавиш со стрелками (те, которые начинаются сESC
символа), когда терминал находитсяscreen
.Вы можете проверить это, временно изменив
$TERM
переменную в tmux перед запуском vim. Если ваша оболочка bash, вызовите vim какв tmux и посмотрите, не исчезнет ли проблема. Вы не должны использовать это как исправление, так как могут быть различия между терминальными возможностями tmux и xterm, и вы можете столкнуться с некоторыми проблемами.
источник
TERM=xterm vim
, не решил проблему. Мне придется копать немного глубже.Как видно из заголовка Screen, здесь есть решение для исправления поведения клавиши Escape в GNU Screen. (Взято отсюда .)
Добавлять
в
.screenrc
конфигурационный файл.источник