OS X Byobu Vertical Split

Chr*_*eon 34 macos byobu

我目前使用iTerm2和byobu在OS X上,我无法弄清楚如何在OS X上垂直分割我的屏幕.在Linux上,我可以使用Ctrl + F2垂直分割我的屏幕,但在OSX上,这不是'感谢Apple的不同键盘.

我用Google搜索解决方案,我无法弄清楚这一点.我可以使用Shift + F2水平分割屏幕,但我需要能够垂直分割.有没有人想出如何让byobu的键盘绑定与Apple电脑配合良好?

提前致谢.

Man*_*nds 61

看起来在这个问题上存在开放的bug.

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

使用:

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

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

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

这是一种解决方法,无需为FN密钥添加完整功能即可使用.这将允许您使用byobu转义键垂直拆分窗口:

  1. 开始byobu.

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

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

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

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

你可以添加一些键映射到您的个人资料iTerm2拿到CTRL,ALT,SHIFT,和FN键来用屏风工作.这很乏味,但我经历了练习,似乎有效.我不认为有一种自动方式来保存iTerm2的这些键映射.

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

    • 单击"+"图标.
    • 输入第一个字段中映射的键盘快捷键.例:CTRL + F2
    • 在"操作"字段中选择"发送转义序列".
    • 在第三个字段中输入字符.例:[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键盘快捷键的冲突.
  • 编辑终端键映射以在使用功能键时发送正确的转义序列.
  • 将iTerm2终端类型设置为"Linux",将TERM环境变量设置为"linux".Byobu和/或Tmux似乎对此很敏感.

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


新窗口和窗格的默认目录

看起来tmux 1.8和tmux 1.9(Src,Src,Src)之间的tmux窗口默认目录存在一些差异.如果您使用带有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}"
Run Code Online (Sandbox Code Playgroud)

按下F5以重新加载设置.