【问题标题】:OS X Byobu Vertical SplitOS X Byobu 垂直分割
【发布时间】:2014-10-03 13:42:30
【问题描述】:

我目前在 OS X 上使用 iTerm2 和 byobu,我不知道如何在 OS X 上垂直拆分屏幕。在 Linux 上,我可以使用 Ctrl+F2 垂直拆分屏幕,但在 OSX 上,这不起作用,这要归功于 Apple 的不同键盘。

我在 Google 上四处寻找解决方案,但我无法弄清楚。我可以使用 Shift+F2 水平分割我的屏幕,但我需要能够垂直分割。有没有人想出如何让 byobu 的键盘绑定与 Apple 电脑配合使用?

提前致谢。

【问题讨论】:

  • 为什么这么痛苦...难道不能有一些解决方法,比如命令行拆分或更改默认键盘映射?
  • Byobu 在 El Capitan 上再次崩溃......所以我放弃了并使用自定义配置使用 tmux。它工作正常。

标签: macos byobu


【解决方案1】:

看起来有开放的bug on this issue

我能够将 iTerm2 配置为在 OS X 上本地使用 byobu,以及在 Ubuntu 14.04 服务器上通过 ssh 远程使用。

使用:

  • OS X 版本:10.9.5 Build 13F34
  • iTerm2 版本:内部版本 1.0.0.20140629

首先,在您的 OS X 系统偏好设置中,编辑您的键盘设置并删除或更改任何可能与 byobu 冲突的快捷方式设置(即 Ctrl + F1 -F12)。

选项 1:使用转义序列的解决方法

这是一种解决方法,无需向 FN 键添加全部功能即可使用。这将允许您使用 byobu 转义键垂直拆分窗口:

  1. 开始byobu

  2. 通过运行:byobu-ctrl-a 设置所需的 Ctrl-A 行为。我选择使用 Emacs 模式。

  3. 运行 byobu-config 并选择或更改您的转义序列。我选择了新的默认 Ctrl + SF12 键也是一个转义序列

  4. 现在您可以使用转义序列发出命令。尝试 F12 然后 %Ctrl + s 然后 % 垂直分割窗口.如需完整的命令列表,请尝试 Ctrl + s 然后 ?F12 然后 ? kbd>.

选项 2:设置 iTerm2 键映射以完全使用所有 FN 键。

您可以在 iTerm2 配置文件中添加一些键映射以获取 CTRLALTSHIFTFN kbd> 与 byobu 一起使用的键。这很乏味,但我完成了练习,它似乎奏效了。我认为没有使用 iTerm2 自动保存这些键映射的方法。

  1. 打开 iTerm2 首选项并选择配置文件。
  2. 选择您要使用的配置文件。
  3. 打开终端窗格,在“报告终端类型”下选择“linux”。
  4. 打开“键”窗格并手动添加以下键绑定。下面是一个如何添加一个键绑定的示例:

    • 点击“+”图标。
    • 在第一个字段中输入要映射的键盘快捷键。示例:CTRL + F2
    • 在操作字段中选择“发送转义序列”。
    • 在第三个字段中输入字符。示例:[1;5Q

您可以通过参考tmux source code来确定此处未列出的任何键序列的控制字符。

对所有这些映射重复此操作,以使相应的 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 键盘快捷键的冲突。
  • 编辑终端键映射以在使用功能键时发送正确的转义序列。
  • 将 iTerm2 终端类型设置为“Linux”,这会将 TERM 环境变量设置为“linux”。 Byobu 和/或 Tmux 似乎对此很敏感。

转义序列的其他一些参考:SO linkxterm-keys.c


新窗口和窗格的默认目录

tmux 1.8 和 tmux 1.9 之间的 tmux 窗口默认目录看起来有些不同(SrcSrcSrc)。如果您在 tmux 1.9 中使用 byobu,您可以尝试将其添加到您的 ~/.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 重新加载设置。

【讨论】:

  • 酷,好吧,我决定只做 Ctrl+a+% 来垂直分割东西。还有一个问题,当您使用 Ctrl+a 打开一个新选项卡时,新窗口似乎总是在第一次打开 byobu 时在目录中打开。在 Linux 中,新窗口在前一个窗口的目录中打开。有没有办法修复它,使 byobu 中的新窗口在以前打开的窗口目录中打开?
  • 这是我必须添加的另一个键映射,以便在拆分之间进行复制工作(按照 herehere 的说明):- ALT + INS:[2;3~
  • 克里斯——这是个好问题。我做了一些挖掘,当您的后端是 tmux 1.8 时,似乎 byobu 新窗口设置为当前窗格的目录。然而,新版本 tmux 1.9 打破了这种行为。这可能会有所帮助:coderwall.com/p/tjo3ig
  • 完成。谢谢你的帮助。还有一个问题,我假设你在 OSX 上?在 OS X 上,我注意到终端中的选项键用于跳过单词。因此,Option+Left 将向左跳过单词,Option+Right 向右跳过。在 byobu 中,Option+Left/Right 将打开的窗口切换到下一个窗口。有没有办法在 byobu 键绑定配置中交换 Option 和 Command 键,以便我可以使用 Option 跳过单词?
  • 是的,我在 OS X 上。根据我的阅读,您似乎无法将 tmux 命令绑定到 Mac Command 键。但是,有几个键盘快捷键映射到“下一个窗口”和“上一个窗口”(尝试tmux list-keys | grep -'next-window' 以获得完整列表)。如果您想将不同的键序列绑定到下一个窗口和上一个窗口,只需像以前一样编辑 ~/.byobu/keybindings.tmux。不要害怕玩耍和编辑这个文件!只需备份原件的副本,这样如果您搞砸了,您就可以随时恢复它:-)
猜你喜欢
  • 2017-04-28
  • 1970-01-01
  • 2017-01-21
  • 2012-05-01
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
相关资源
最近更新 更多