OS X Byobu 垂直分割

2024-03-02

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

我用谷歌搜索了所有解决方案,但我无法弄清楚这一点。我可以使用 Shift+F2 水平分割屏幕,但我需要能够垂直分割。有谁知道如何让 byobu 的键盘绑定与苹果电脑兼容吗?

提前致谢。


好像已经开放了关于这个问题的错误 https://bugs.launchpad.net/byobu/+bug/482623.

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

Using:

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

First, in your OS X system preferences, edit your keyboard settings and remove or change any shortcut settings that may conflict with byobu (i.e. Ctrl + F1-F12).

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

Here's a workaround that will work without adding full functionality to the FN keys. This will allow you to split windows vertically using the byobu escape key:

  1. Start byobu.

  2. Set your desired Ctrl-A behavior by running: byobu-ctrl-a. I chose to go with Emacs-mode.

  3. Run byobu-config and choose or change your escape sequence. I went with the new default Ctrl + S. The F12 key is also an escape sequence

  4. Now you can issue a command with your escape sequence. Try F12 then % or Ctrl + s then % to split a window vertically. For a full list of commands, try Ctrl + s then ? or F12 then ?.

Option 2: Setting iTerm2 key mappings to fully use all FN keys.

You can add some key mappings to your iTerm2 profile to get the CTRL, ALT, SHIFT, and FN keys to work with byobu. This is tedious, but I went through the exercise and it seems to work. I don't think there's an automated way to save these key mappings with iTerm2.

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

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

您可以通过参考来确定此处未列出的任何键序列的控制字符tmux 源代码 https://github.com/tmux/tmux/blob/master/xterm-keys.c.

对所有这些映射重复此操作以使相应的 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~

Summary

为了让事情顺利进行,我们需要:

  • 消除与 OS X 键盘快捷键的冲突。
  • 编辑终端键映射以在使用功能键时发送正确的转义序列。
  • 将 iTerm2 终端类型设置为“Linux”,这会将 TERM 环境变量设置为“linux”。 Byobu 和/或 Tmux 似乎对此很敏感。

关于转义序列的其他一些参考:SO link https://stackoverflow.com/questions/19062315/how-do-i-find-out-what-escape-sequence-my-terminal-needs-to-send and xterm-keys.c https://github.com/tmux/tmux/blob/master/xterm-keys.c


新窗口和窗格的默认目录

看起来 tmux 1.8 和 tmux 1.9 之间的 tmux 窗口默认目录存在一些差异(Src http://sourceforge.net/p/tmux/mailman/tmux-users/thread/20131019080624.GA13382@SUNGPAE/, Src https://unix.stackexchange.com/questions/12032/create-new-window-with-current-directory-in-tmux, Src https://news.ycombinator.com/item?id=7275911)。如果您将 byobu 与 tmux 1.9 一起使用,您可以尝试将其添加到您的~/.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}"

Press F5 to reload settings.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OS X Byobu 垂直分割 的相关文章

  • NSImage 到 NSBitmapImageRep

    如何将 NSImage 转换为 NSBitmapImageRep 我有代码 NSBitmapImageRep bitmapImageRepresentation NSBitmapImageRep ret NSBitmapImageRep s
  • 如何为 Windows 和 macOS 更新 PyQT5 应用程序?

    我有一个使用 PyQT5 为 Windows 和 macOS 构建的应用程序 目前 用户通过单击按钮检查更新 当有可用的新更新时 我将它们重定向到浏览器到我的服务器以下载最新的 exe Windows 或 pkg macOS 问题在于 如果
  • Mac 操作系统的 windows.h 替代品

    早上好 我正在使用 Codeblock c 程序进行编程 但是 我需要使用窗口 h and conio h MacBook 上没有这个头文件 拜托 你能帮我吗 不起作用的来源 void gotoxy int x int y COORD co
  • 阻止 OpenGL.framework 在 Cocoa 应用程序中加载

    我的应用程序链接到这些框架 Cocoa Framework AppKit Framework CoreData Framework Foundation Framework 请注意 OpenGL Framework 是NOT已链接 但是 设
  • 在 macOS 上更新 GNU make

    我从下载了 GNU make 4 2 1here http ftp gnu org gnu make make 4 2 1 tar gz 并按照展开文件夹中的 INSTALL 文件中的说明安装它 现在我跑make v在 shell 中 我仍
  • 在 SwiftUI TextEditor 中设置光标位置

    有没有办法以编程方式将光标移动到特定文本行或在 SwifUI 中选择它TextEditor 例如 如果有一个TextEditor里面写着10行 当用户按下按钮时 光标将导航到第三行 或者文本将被选择 目前使用默认的 SwiftUI 是不可能
  • Xamarin 没有安装的配置文件与安装的 iOS 签名身份匹配

    我想知道是否可以在 ios 设备上编译 Xamarin 应用程序 使用 Visual Studio for mac 而无需成为开发人员 费用为 99 美元 年 因为当我尝试在 iPhone 上构建项目时出现此错误 Xamarin iOS C
  • 10.11 NSCollectionView - 动态确定单元格大小

    OS X v10 11 AppKit 发行说明 https developer apple com library mac releasenotes AppKit RN AppKit 10 11CollectionView建议可以根据每个项
  • 在电子中播放本地mp4文件

    我正在尝试开发一个小应用程序 其中我首先通过以下方式捕获屏幕aperture包 然后尝试使用在屏幕上显示它video tag 我通过以下方式捕获屏幕 import apertureConstructor from aperture cons
  • 在 ios wifi 网络上查找对等点

    我试图弄清楚如何搜索登录到 wifi 网络且在特定端口上托管应用程序的其他设备 在不知道这些其他设备的地址甚至不知道它们托管的端口的情况下 如何检测它们的存在 一旦发现 我应该能够联系该设备并与其建立连接 最标准的 iOS方式 是使用Bon
  • OS/X 上的 iTunes COM 接口

    iTunes COM 接口在 Mac OS X 上可用吗 从我能找到的文档来看 它似乎比我可以通过以下方式公开的 Applescript 接口要广泛得多自动机程序 免责声明 这里绝对是 OS X 新手 COM 接口仅适用于 Windows
  • 如何在 mac 中使用“getopt”命令让 bash 处理长参数?

    我想让我的 bash 脚本处理长参数 我发现getopt 但 OS X 不支持它 谁能告诉我为什么getoptBSD 实现了 GNU 没有实现 我尝试构建getopt在 GNU C lib 中 但由于我对 Linux 的技能不佳而失败了 有
  • 镀铬中的 SVG 条带

    I am using a svg file to produce a smooth gradient when I noticed some serious banding issues in Google Chrome 20 Even s
  • Mysql 连接到服务器:用户 root@localhost 的访问被拒绝

    edit9 是否有可能我只是缺少文件夹的一些权限 我真的非常非常感谢更多的建议 edit3 由于这篇文章没有得到足够的回复 而且这绝对是至关重要的 我尽快完成这件事 我重建了我的帖子以显示我认为到目前为止我已经扣除的内容 注意 通过许多不同
  • PyCharm:安装包失败

    我需要安装一些软件包 无论我尝试哪个方向 情况只会变得更糟 请帮忙 40 497 执行错误 目录 Users doekewartena Library Caches pip http 或其父目录 不属于当前用户并且缓存已被禁用 请检查该目录
  • Cocoa Accessibility API,我可以单击后台窗口而不激活它吗?

    我一直在寻找解决这个问题的方法 所以我想我应该寻找比我更伟大的头脑 我正在开发一个 Cocoa 应用程序 它使用 Accessibility API 来操作另一个程序 它是一个热键应用程序 我控制的应用程序通常会打开多个窗口 其中一些窗口隐
  • 在当前参数寄存器中找到的选择器名称:isEqual:

    我正在寻求一些帮助来消除 OSX 应用程序中的一个我无法解决的错误 我收到以下记录错误 Selector name found in current argument registers isEqual 但我一生都无法弄清楚它来自哪里 因为
  • 无法在 Mac OS X 上启动应用程序 我收到错误 LSOpenURLsWithRole() 应用程序失败,错误为 -10810

    问题 我正在尝试启动一个应用程序 遗传网络分析仪 http www genostar com category products gna 但它默默地失败了 使用时open gna app产生以下错误消息 LSOpenURLsWithRole
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • 如何在 OS X 版 Chrome 上手动安装扩展程序?

    我已经创建了一个 chrome 扩展 我想将其手动添加到 mac osx 10 7 和 10 8 上的 chrome 我尝试执行以下步骤 在以下 url 下添加扩展文件夹 用户 talmutzafi 库 应用程序支持 Google Chro

随机推荐