Как остановить tmux, фиксируя последовательности клавиш?

Мой xterm настроен для создания этой последовательности:

 Ctrl ~Shift <Key>Tab: string(0x1b) string("[27;5;9~") \n\ 

При tmux он почти всегда не работает (иногда он проходит). Что может быть причиной?

tmux имеет таблицу шаблонов escape-последовательности в файле xterm-keys.c чтобы он мог поддерживать модифицированные специальные клавиши в стиле xterm. Он соответствует этой схеме:

  { '\t', "\033[27;_;9~" }, 

к вашей строке \033[27;5;9~ используя символ подчеркивания в качестве подстановочного знака. Таблица отображает escape-последовательности в вещи, которые tmux знает о:

  • специальные клавиши, с контрольными и сменными модификаторами
  • другие ключи, где tmux игнорирует эти модификаторы

Обычно это переводит вашу escape-последовательность в символ табуляции , который вы, возможно, не замечаете (кроме, возможно, запускающего завершение имени). Если вы удерживаете клавишу нажатой, вы получите клавиатуру, чтобы повторить достаточно быстро, чтобы tmux потерял информацию о времени и позволил пропустить отдельные байты (ограничение распознавания функциональных клавиш).

Если входящая escape-последовательность не соответствует одному из этих шаблонов и не найдена в списке специальных ключей из описания терминала, tmux , скорее всего, полностью отбросит вход (при условии неправильной интерпретации из-за повтора ключа и т. Д.).