Ответ 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
).