Как сделать так, чтобы бёбу обрабатывал Ctrl+B?

Я привык к tmux, поэтому я хочу, чтобы Byobu использовал Ctrl+B в качестве escape-последовательности. Я нажимаю F9, меняю escape-последовательность и B,

Но когда я нажимаю Ctrl+B на оболочке, он перемещается на один символ назад, вместо того, чтобы byobu/tmux справился с этим.

1 ответ

Решение

Во-первых, я обычно не использую F9 меню, так что это относительно новое для меня. Однако, когда я сделал это и нажал B (нет ctrl так как это предполагается / принудительно), он сразу же работал правильно (без перезапуска). Я не уверен, почему это не будет работать с вашей конфигурацией.

поскольку byobu действительно хранит свой собственный набор элементов конфигурации и форсирует screen/tmux чтобы использовать его версии, вы можете найти, что изменить, посмотрев в ~/.byobu/и как это изменить, прочитав соответствующие страницы man/help.

Вы можете редактировать byobuКонфигурационные файлы за кулисами (не всегда хорошая идея, но должна быть приемлемой здесь). поскольку byobu использует либо screen или же tmux (в зависимости от того, что установлено), ответ может находиться в ~/.byobu/keybindings (для экрана) или ~/.byobu/keybindings.tmux,

Я играл с использованием обоих screen а также tmux... выберите один (по умолчанию tmux если установлен, я думаю) и идти с ним.

Перво-наперво

Проверьте, чтобы убедиться, что echo $HOME печатает, что вы ожидаете (не пустая строка). Если нет каталога с именем .byobu в этом домашнем каталоге, то либо byobu установка выполняется или у вас не установлены правильные разрешения в вашем домашнем каталоге; пытаться mkdir "${HOME}/.byobu"и если это не сработает, то это может быть частью вашей проблемы.

screen

От man screen

...

 escape xy

 Set  the  command  character  to  x and the character generating a literal command
 character (by triggering the "meta" command) to y  (similar  to  the  -e  option).
 Each  argument  is either a single character, a two-character sequence of the form
 "^x" (meaning "C-x"), a backslash followed by  an  octal  number  (specifying  the
 ASCII  code of the character), or a backslash followed by a second character, such
 as "\^" or "\\".  The default is "^Aa".

...

Первая строка ~/.byobu/keybindings должен иметь byobuисходная команда, так что не меняйте ее. После этого добавьте следующее:

escape "^Bb"
register x "^B"
bindkey "^B"

(Это взято дословно из того, что byobu сделал для моей установки. Исторически - так как я использую screen/tmux без byobu большую часть времени - я просто установил:

escape "^Bb"
defescape "^Bb"

Возможно, это не лучший способ, и в этом есть некоторая историческая хитрость, но это работает для меня.)

tmux

Точно так же из man tmux:

       prefix key
               Set the key accepted as a prefix key.

       prefix2 key
               Set a secondary key accepted as a prefix key.

мой ~/.byobu/keybindings.tmux не имеет исходной команды, поэтому мой файл содержал только следующее:

unbind-key -n C-b
set -g prefix ^B
set -g prefix2 ^B
bind b send-prefix

Если это не работает

Знание вашей ОС и версий программного обеспечения будет полезно. Я тестировал это на Ubuntu-13.10 с помощью byobu-5.60-0ubuntu1, screen-4.0.3-14ubuntu10 и tmux-1.8-4.

Другие вопросы по тегам