Подтвердить что ты не робот

Bind Ctrl + Tab и Ctrl + Shift + Tab в tmux

Я пытаюсь получить привязку ctrl + tab и ctrl + shift + tab для работы внутри сеанса tmux (я также использую PuTTY).

Я уже преодолел трудности с перекомпиляцией PuTTY, чтобы он правильно отправил ctrl и shift . После использования ctrl + v, и я могу видеть, что ^[[27;5;9~ и ^[[27;6;9~ отправляются для ctrl + tab и ctrl + shift + tab, соответственно, Есть ли способ, которым я могу привязать их к следующему окну и предыдущему окну внутри tmux?

Изменить: После некоторых исследований, я думаю, мне, возможно, придется настроить xterm, чтобы включить эти коды ключей. Любая идея, как я буду это делать?

Edit2: Поэтому я узнал, что могу восстановить infocmp и перекомпилировать его. Я добавил

kctab=\E[27;5;9~, kcstab=\E[27;6;9~,

до конца, за исключением того, что теперь он дает мне ошибку. " запись не начинается с имен термина в столбце

4b9b3361

Ответ 1

Недавние "невыпущенные" версии tmux автоматически распознают эти последовательности ключей в стиле xterm, как только вы отправляете их терминал (нет необходимости менять запись terminfo). Следующая версия версии (1.8?) Также должна иметь эту поддержку. При соответствующей сборке tmux 1 все, что вам нужно сделать, это связать ключи в конфигурации tmux:

bind-key C-Tab next-window
bind-key C-S-Tab previous-window

Вам все равно нужно ввести свой префиксный ключ перед этими ключами.

(Примечание: ~/.tmux.conf обрабатывается только при запуске сервера. Если вы вносите изменения в него, вам нужно будет либо выйти из всех сеансов, либо перезапустить сервер, либо использовать (например) tmux source ~/.tmux.conf, чтобы иметь существующие сервер перепрограммирует файл.)

Кроме того, если вы хотите, чтобы tmux передавал эти (и другие) последовательности ключей стиля xterm в программы, запущенные внутри tmux, вам нужно включить параметр окна xterm-keys.

set-option -gw xterm-keys on

(Если вы предпочитаете, вы можете сделать это на основе каждого окна, используя -w вместо -gw.)


Если вы хотите использовать эти клавиши без ввода префикса, вместо этого вы можете использовать привязки "без префикса":

bind-key -n C-Tab next-window
bind-key -n C-S-Tab previous-window

Это будет более или менее "посвящать" ключи tmux. Трудно будет набрать эти ключи для любой программы, запущенной внутри tmux (например, вам нужно будет использовать команду tmux send-keys C-Tab - нормальный, xterm-keys должен быть включен для отправки этих последовательностей клавиш в стиле xterm).


Проблема с редактированием записи terminfo, вероятно, связана с тем, что каждая строка после той, которая называет тип терминала, должна начинаться с Tab. Строки, которые не начинаются с вкладки, являются началом новой записи терминала. Технически последовательность NL TAB в основном является продолжением строки в этом формате; каждая запись представляет собой одну логическую строку.

Кроме того, если вы переопределяете записи terminfo, обязательно используйте -x с infocmp и tic, чтобы сохранить пользовательские возможности (некоторые из которых довольно стандартны).


1 I.e. построенный из недавнего кода в репозитории tmux Git на sf.net (в URL-адресе для клонирования git://git.code.sf.net/p/tmux/tmux-code).