3

Когда я пытаюсь переключать панели в tmux с помощью ctrl+b, tmux спорадически печатает соответствующий код символа [A, [B, [C или [D] вместо панелей переключения.

Я могу сделать это многократно, точно так же, 75% времени, когда он переключится должным образом, а остальные 25%, когда он вместо этого напечатает код символа.

ctrl+b <up arrow>    prints [A
ctrl+b <down arrow>  prints [B
ctrl+b <right arrow> prints [C
ctrl+b <left arrow>  prints [D

Я использую Cygwin, подключенный к Linux Mint. Tmux работает на Linux mint, и я использую оболочку bash.

Изменить: чтобы сделать этот вопрос более удобным для поиска, я добавлю следующие ключевые слова:

Клеммы выводят коды символов: открытая скобка A, открытая скобка B, открытая скобка C, открытая скобка D.

Есть идеи?

2 ответа2

2

Похоже, escape-time tmux установлено на низкое для качества связи между вашей системой Cygwin и системой Linux.

Многие терминалы генерируют трехбайтовую последовательность ESC [ B для клавиши со стрелкой вниз. Параметр escape-time сообщает tmux, как долго он должен ждать завершения последовательности после получения ESC; если время истекает без получения полной последовательности, то tmux будет обрабатывать отдельные байты как отдельные нажатия клавиш (обрабатывать Cb ESC как несвязанный ключ tmux и передавать [B в tty активной панели).

Таким образом, либо вы установили для escape-time очень низкое значение (которое, вероятно, работает нормально, когда вы получаете доступ к tmux через строго локальные соединения), либо соединение между двумя компьютерами иногда заканчивается задержкой чуть больше, чем ваше значение escape-time , Вы можете запросить текущее значение с помощью команды tmux show-options -s | grep escape-time .

По умолчанию это 500 миллисекунд; это должно работать нормально в большинстве ситуаций, но может быть слишком коротким для маргинальных соединений. Вы можете попытаться повысить значение escape-time:

set-option -s escape-time 1000

Вы можете поместить это в вашем файле ~/.tmux.conf запустить его как команду tmux в оболочке внутри tmux сессии, или введите его непосредственно в tmux строке (открыт с : Примечание: Изменения , внесенные в ~/.tmux.conf не вступит в силу до тех пор , пока повторно выполнить файл или перезагрузить сервер tmux.

1

У меня тоже есть эта проблема; это определенно специфично для клавиш со стрелками (и, вероятно, cygwin). В настоящее время я решил просто отсоединить клавиши со стрелками и переместить команды панели выбора в другое место, и новые привязки клавиш работают без нареканий. Не очень удовлетворительное решение, хотя. Я хотел бы услышать, узнает ли кто-нибудь, что происходит.

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