Ответ 1
Похоже, что там открыто ошибка в этой проблеме.
Мне удалось настроить iTerm2 на использование byobu локально на OS X, а также удаленно через ssh на сервере Ubuntu 14.04.
Использование:
- Версия OS X: 10.9.5 Build 13F34
- Версия iTerm2: Build 1.0.0.20140629
Во-первых, в настройках вашей операционной системы OS измените настройки клавиатуры и удалите или измените любые настройки ярлыков, которые могут конфликтовать с byobu (т.е. Ctrl + F1 - F12).
Вариант 1: Обходной путь с использованием управляющих последовательностей
Вот обходной путь, который будет работать без добавления полной функциональности клавишам FN. Это позволит вам разбивать окна по вертикали, используя escape-ключ byobu:
-
Запустите
byobu
. -
Задайте желаемое поведение Ctrl - A, запустив:
byobu-ctrl-a
. Я решил пойти с Emacs-mode. -
Запустите
byobu-config
и выберите или измените управляющую последовательность. Я пошел с новым значением по умолчанию Ctrl + S. Клавиша F12 также является escape-последовательностью -
Теперь вы можете выдать команду с вашей escape-последовательностью. Попробуйте F12, затем % или Ctrl + S, затем %, чтобы разделить окно по вертикали. Для получения полного списка команд попробуйте Ctrl + S, затем ? или F12, затем ?.
Вариант 2: настройка сопоставлений клавиш iTerm2 для полного использования всех клавиш FN.
Вы можете добавить некоторые сопоставления клавиш в свой профиль iTerm2, чтобы получить ключи Ctrl, ALT, SHIFT и FN для работы с byobu. Это утомительно, но я прошел упражнение и, похоже, сработал. Я не думаю, что есть автоматизированный способ сохранить эти сопоставления клавиш с iTerm2.
- Откройте iTerm2 и выберите "Профили".
- Выберите профиль, который хотите использовать.
- Откройте панель "Терминал" и в разделе "Тип терминала отчета" выберите "Linux".
-
Откройте панель "Ключи" и вручную добавьте следующие привязки клавиш. Вот пример того, как добавить одно ключевое связывание:
- Нажмите значок "+".
- Введите ярлык клавиатуры, отображаемый в первом поле. Пример:
CTRL + F2
- В поле Действие выберите "Send Escape Sequence".
- Введите символы в третьем поле. Пример:
[1;5Q
Вы можете определить управляющие символы для любой последовательности клавиш, не указанной здесь, ссылаясь на исходный код tmux.
Повторите это для всех этих сопоставлений, чтобы выполнить соответствующую команду byobu:
- Ctrl + F2:
[1;5Q
- Ctrl + SHIFT + F2:
[1;6Q
- ALT + LEFT:
[1;3D
- ALT + RIGHT:
[1;3C
- ALT + UP:
[1;3A
- ALT + DOWN:
[1;3B
- Ctrl + F3:
[1;5R
- Ctrl + F4:
[1;5S
- Ctrl + SHIFT + F3:
[1;6R
- Ctrl + SHIFT + F4:
[1;6S
- SHIFT + ALT + LEFT:
[1;4D
- SHIFT + ALT + RIGHT:
[1;4C
- SHIFT + ALT + UP:
[1;4A
- SHIFT + ALT + DOWN:
[1;4B
- Ctrl + F5:
[15;5~
- Ctrl + SHIFT + F5:
[15;6~
- ALT + F6:
[17;3~
- Ctrl + F6:
[17;5~
- ALT + PPAGE:
[5;3~
- ALT + NPAGE:
[6;3~
- Ctrl + F8:
[19;5~
- ALT + SHIFT + F8:
[19;4~
- Ctrl + SHIFT + F8:
[19;6~
- Ctrl + F9:
[20;5~
- ALT + F11:
[23;3~
- Ctrl + F11:
[23;5~
- ALT + F12:
[24;3~
- Ctrl + F12:
[24;5~
- ALT + INS:
[2;3~
Резюме
Чтобы найти работу, нам необходимо:
- Удалить конфликты с быстрыми клавишами OS X.
- Отредактируйте сопоставления клавиш терминала, чтобы отправить правильные escape-последовательности при использовании функциональных клавиш.
- Установите тип терминала iTerm2 в "Linux", который устанавливает переменную окружения TERM как "linux". Byobu и/или Tmux, казалось, были чувствительны к этому.
Некоторые другие ссылки на escape-последовательности: ссылка SO и xterm-keys.c
Каталог по умолчанию для новых окон и окон
Похоже, что существует некоторая разница в каталоге по умолчанию окна tmux между tmux 1.8 и tmux 1.9 (Src, Src, Src). Если вы используете byobu с tmux 1.9, вы можете попробовать добавить это в свой файл ~/.byobu/keybindings.tmux
, чтобы при создании новых окон или вертикальных/горизонтальных разделов, которые они открывают в том же каталоге, что и текущая панель:
unbind-key -n F2
bind-key -n F2 display-panes \; new-window -c "#{pane_current_path}" -n -
unbind-key -n C-F2
bind-key -n C-F2 display-panes \; split-window -hc "#{pane_current_path}"
unbind-key -n S-F2
bind-key -n S-F2 display-panes \; split-window -vc "#{pane_current_path}"
unbind-key %
bind-key % display-panes \; split-window -hc "#{pane_current_path}"
unbind-key |
bind-key | display-panes \; split-window -vc "#{pane_current_path}"
Нажмите F5, чтобы перезагрузить настройки.