3

Ubuntu 12.10, TERM установлен в screen-256color в putty и tmux.conf, что подтверждается при export в сеанс tmux и из него.

Если я запускаю cat > /dev/null а затем нажимаю <down> затем <c-down> , я получаю ^[[B^[OB вне сеанса tmux, но ^[[B^[[B во время сеанса ,

Я пытался включить setw setw -g xterm-keys on в моем .tmux.conf безрезультатно.

1 ответ1

3

screen-256color - это допустимое значение TERM для использования внутри tmux, но xterm-256color , вероятно, будет более подходящим для использования вне tmux (где вы «только внутри» PuTTY). Присоединение к сеансу tmux с неточным значением TERM похоже на ложь к tmux о последовательностях управления, которые использует ваш эмулятор терминала (т. Е. PuTTY, вероятно, не поддерживает точно последовательности управления, описанные в записи базы данных terminfo screen-256color).

Я не использую PuTTY, но поиск вокруг оставил у меня впечатление, что PuTTY не поддерживает отправку последовательностей, которые на самом деле означают (например) Контрол+Стрелка вниз. Различные последовательности, которые вы наблюдаете, на самом деле две разные последовательности для простой стрелки вниз. ^[[B - нормальная последовательность, а ^[OB - для случая, когда программа запросила режим «клавиш курсора приложения».

Поэтому, когда PuTTY отправляет ^[OB , любая программа, ожидающая последовательности в стиле xterm , будет интерпретировать эту последовательность как « Стрелка вниз , в то время как в режиме клавиш курсора приложения» (или просто Стрелка вниз), но никогда не как Control+Стрелка вниз. В частности, когда tmux видит любую из этих последовательностей, он интерпретирует ее как обычную стрелку вниз. Последовательность, которую tmux затем генерирует для своей панели, зависит от того, была ли эта конкретная панель сконфигурирована для режима клавиш курсора приложения или нет.

В вашем случае вы не просили tmux переключить свою панель в режим клавиш курсора приложения, поэтому она перевела последовательность в «нормальную» последовательность в обоих случаях. Вы должны быть в состоянии наблюдать разницу, выполняя такие команды (либо внутри, либо вне tmux) (команды tput генерируют последовательности управления, которые активируют и деактивируют требуемые режимы терминала):

# Activate "Application Cursor Keys" (and "Application Keypad")
tput smkx ; cat
# Press Down Arrow to see '^[OB', then Control-C to kill the cat

# Activate "Normal Cursor Keys" (and "Normal Keypad")
tput rmkx ; cat 
# Press Down Arrow to see '^[[B', then Control-C to kill the cat

Если вы можете каким-то образом убедить PuTTY отправлять измененные последовательности клавиш со стрелками в стиле xterm (т. ^[[1;5B для Control+стрелка вниз), то tmux сгенерирует те же последовательности для своих панелей, когда включены xterm-keys .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .