Сочетания клавиш в PuTTY / MinTTY и Tmux / Byobu

18

Как давний специалист по Stack Exchange, я нашел ответы на большинство моих проблем без необходимости создавать аккаунт. Но сегодня я полностью озадачен этой проблемой, поэтому я обращаюсь за помощью.

Недавно я обнаружил Byobu, интерфейс для Tmux, который использует клавиши Fn для общих задач. Это настоящее благословение для многозадачности через SSH на удаленный сервер Linux с ПК с Windows, который я должен использовать на работе.

В настоящее время я использую gnome-терминал через туннель SSH, потому что PuTTY и MinTTY (терминал по умолчанию с Cygwin), похоже, посылают неправильные коды клавиш для функциональных клавиш.

Мне было интересно, есть ли способ переопределить некоторые escape-коды, чтобы хотя бы один из моих оконных терминалов мог нормально работать с Tmux. (Думаю, я мог бы просто выучить комбинации клавиш Ctrl + b / Ctrl + a, но выполнение комбинации клавиш, за которой следует другая клавиша, на самом деле не кажется мне эргономичным.)

В PuTTY установка Terminal> Keyboard> «Функциональные клавиши и клавиатура» на «XtermR6», кажется, обычно выдвигает правильные escape-последовательности для клавиш Fn, но модификаторы Shift и Ctrl не работают. Я могу использовать vim, чтобы выяснить, какие коды отправляются каждым терминалом. Между тем, я думаю, что, возможно, я искал комбинацию, которую ищет tmux в своем исходном коде , но я не уверен:

Key              Tmux Expects    Gnome-Terminal   PuTTY    MinTTY
Normal F3:                       ^[0R             ^[0R     ^[0R
Ctrl+F3          "\033[13^"      ^[01;5R          ^[0R     ^[[1;5R
Shift+F3         "\033[13$"      ^[01;2R          ^[[25~   ^[[1;2R
Ctrl+Shift+F3    "\033[13@"      ^[01;6R          ^[[25~   ^[[1;6R

Пока что MinTTY выглядит лучшим кандидатом, но это дает мне совершенно другую проблему, когда byobu игнорирует 95% нажатий клавиш Fn, передавая их непосредственно клиентскому приложению. Я могу запустить cat -v и спамить клавишу F2 (в новом окне), и она напечатает «^ [0Q» четыре или пять раз, прежде чем внезапно появится новое окно.

Если у кого-то есть совет, это будет приветствоваться. В большинстве материалов, которые я нашел в интернете, говорилось об изменении типа терминала, но я пробовал буквально каждую комбинацию, которую предлагает каждая из двух программ.

Благодарность!

Карл Джонсон
источник
3
Последовательности, которые вы перечисляете для tmux, являются просто последовательностями модифицированного ключа rxvt- стиля, которые он распознает. tmux также распознает (немодифицированную) последовательность, указанную в записи terminfo TERM (например, kf3из любого TERM, который вы используете при подключении к tmux ), а также последовательности модифицированного ключа xterm -style из xterm-keys.c. Итак, последовательности, о которых вы сообщаете из Gnome-Terminal и MinTTY (хотя escape + нули в ваших последовательностях должны быть escape + letter-ohs (он же SS3), должны распознаваться tmux , но они будут проходить через них, только если у вас есть xterm-keysопция включена
Крис Джонсен

Ответы:

1

У меня была похожая проблема с PuTTY и экраном (я не мог использовать Ctrlмодификатор). Решение, которое я нашел, было KiTTY - форк PuTTY, который лучше поддерживается (последнее обновление от 2015/06/02 22:02). Моя проблема с Ctrlключом исчезла.

По умолчанию Kitty использует клавиши Fn для своих собственных сочетаний клавиш, но вы можете настроить их другим способом , поэтому нажатия клавиш Fn будут отправляться в ваше приложение.

Гук
источник
0

Я использую BYOBU таким же образом. Я просто использую Cygwin в эти дни, так как F2,3,4 и F6 просто работают для меня, и это единственные, которые меня действительно беспокоят. Однако, когда я использовал замазку, у меня был наибольший успех с настройкой «Функциональные клавиши и клавиатура», настроенной на эмуляцию VT100 +.

smokes2345
источник