如何让byobu处理Ctrl + B?

时间:2014-12-18 18:06:59

标签: byobu

我习惯了tmux,所以我希望Byobu使用Ctrl + B作为转义序列。我点击F9,更改转义序列B

但是当我在shell上按下Ctrl + B时​​,它会移回一个字符而不是让byobu / tmux处理它。

1 个答案:

答案 0 :(得分:2)

首先,我通常不会使用F9菜单,所以这对我来说相对较新。但是,当我这样做并按下B(没有ctrl因为假定/强制),它立即正常工作(没有重启)。我不确定为什么它不适用于您的配置。

由于byobu确实保留了自己的配置项存储并强制screen / tmux使用其版本,因此您可以找到要更改的内容通过阅读相应的人/帮助页面查看~/.byobu/如何来更改它。

您可以在幕后编辑byobu的配置文件(并不总是一个好主意,但这里应该可以接受)。由于byobu使用screentmux(根据安装的内容),答案可以位于~/.byobu/keybindings(屏幕)或~/.byobu/keybindings.tmux。< / p>

我一直在使用screentmux ...选择一个(默认为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进行了测试。