1

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

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

4

1 回答 1

2

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

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

byobu您可以在幕后编辑的配置文件(并不总是一个好主意,但在这里应该可以接受)。由于byobu使用screentmux(基于安装的内容),答案可以驻留在~/.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's source命令,所以不要改变它。在它之后,添加以下内容:

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 对此进行了测试。

于 2014-12-18T19:02:50.410 回答