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

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

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

  • сопоставление файлов с использованием расширения фигурной скобки в zsh
  • Разбор JSON на оболочке
  • Как установить Cols и Lines для подпроцесса
  • Системный буфер сброшен, как только я выйду из vim
  • Что вы используете для управления своей историей оболочки?
  • tmux "last-session" привязка
  • После некоторых экспериментов я обнаружил, что нажатие клавиши ESC и сразу другой ключ (скажем, b ) имеет тот же эффект, что и удар Alt + b . Я не знаю, почему это так (вероятно, по старым причинам, когда не было Alt ? Я не знаю). В любом случае, у меня есть две клавиши Alt, и я не хочу этого поведения с помощью клавиши ESC . Я пробовал с C + [ и с той же проблемой с этим тоже.

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

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

  • xfce: слишком высокий гном-терминал после выхода из максимизации / полного экрана
  • Почему я не могу напечатать переменную, которую я вижу на выходе env?
  • zsh удалить часть приглашения
  • Используя vim-латекс с латексмком и выведем результат в искаженном тексте (GLib-GObject-CRITICAL)
  • zsh завершение: меню и однозначный префикс с одной вкладкой?
  • Как держать терминал открытым (за исключением gnome-terminal)?
  • 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 - лучшая ОС в мире.