Клавиша ESC вызывает небольшую задержку в терминале из-за его поведения Alt +

Моя настройка терминала – gnome-terminal + tmux + zsh с привязками vi.

В таких приложениях, как vim или даже в режиме редактирования vi командной строки zsh, мне нужно часто нажимать клавишу ESC, но есть небольшая задержка до того, как эффекты этого ключа произойдут. См. Экран GNU Экран Vim ESC замедляется

После некоторых экспериментов я обнаружил, что нажатие клавиши ESC и сразу другой ключ (скажем, b ) имеет тот же эффект, что и удар Alt + b . Я не знаю, почему это так (вероятно, по старым причинам, когда не было Alt ? Я не знаю). В любом случае, у меня есть две клавиши Alt, и я не хочу этого поведения с помощью клавиши ESC . Я пробовал с C + [ и с той же проблемой с этим тоже.

Я не уверен, кто несет ответственность за это: gnome-terminal или tmux или сама моя ОС (Ubuntu Natty). Любые идеи о том, как обращаться с этим, были бы замечательными.

Обновление : я проверил без tmux на другом терминале (LXTerminal), и там также присутствует задержка.

  • Пополнение Git для псевдонимов доступно только после запуска `git reflog`
  • zsh: То, что выражение glob эквивалентно `find. -тип f`?
  • Надежная идентификация пути к каталогу, содержащему запущенный скрипт
  • zsh хочет исправить vim для .vim
  • Как я могу перечислить все переменные оболочки?
  • Разбор JSON на оболочке
  • Приоритет && vs & in bash и zsh
  • Вставка имеет нечетное поведение в оболочке
  • 3 Solutions collect form web for “Клавиша ESC вызывает небольшую задержку в терминале из-за его поведения Alt +”

    Вот реальное решение. Добавьте в .tmux.conf следующее:

     set -s escape-time 0 

    Задержка вызвана процедурами ввода, которые, возможно, придется решить, нажата ли функциональная клавиша или нет. Для этого процедура ввода запускает таймер всякий раз, когда он читает символ ESC. Символы, которые считываются с входного сигнала до истечения таймера (скажем, десятая часть секунды), затем интерпретируются как последовательность ESC функциональной клавиши, и эта ESC-последовательность будет сравниваться с известными строками ESC-функций из terminfo или termcap (зависит от того, какие низкоуровневые процедуры используются).

    Конечно, это раздражает приложения, где ESC используется сам по себе, но я не знаю об этом обходного пути.

    Что касается вашего вопроса с поведением ESC a = Meta a :

    Мета ключи не были доступны со всеми клавиатурами. В качестве обходного пути часто разрешалось использовать клавишу ESC для нажатия перед другим ключом.

    Хотя это может не решить проблему напрямую, я обнаружил, что для выхода из режима вставки я могу использовать <Ctrl> c . Это также можно использовать для выхода из экрана прокрутки экрана tmux (который можно вызвать с помощью <leader> PgUP )

    Linux и Unix - лучшая ОС в мире.