调整窗格大小不适用于 mac 上的 tmux?

Bis*_*ath 39 tmux macos

搜索后,我认为 ctrl+b ( PREFIX ) 然后 ctrl + arrow 应该调整当前窗格的大小。但它不起作用。我错过了什么吗?

谢谢。

Chr*_*sen 48

当您按住Control箭头键时,您的终端可能没有发送(不同的)序列。

尝试运行cat并在其中键入键(Control-C 退出)。您可能会发现 (eg)UpControl-Up都生成相同的序列。

OS X终端应用程序

在其默认配置中,OS X终端应用程序会发送序列^[[A(或^[OA),无论您键入UpControl- Up(也可以与Shift和 的任意组合Option)。

但是,您可以重新配置终端以发送适当的代码。这有点乏味,但你通常只需要做一次。

  1. 终端>首选项...
  2. 设置顶级选项卡
  3. 选择您要修改的配置文件
  4. 键盘选项卡
  5. 单击加号按钮添加新绑定

    • 选择一个光标键
    • 将修改器设置为 control
    • 使用Send Text:动作
    • 键入Escape(将显示为\033),然后[1;5再输入一个字符:
      • A对于Up
      • B对于Down
      • C对于Right, 或
      • D 为了 Left
    • 单击确定添加绑定

例如,对于最后的序列Control-Up应该结束了看起来像\033[1;5A

这些序列是 XTerm 生成的序列(有关详细信息,请参阅ctlseqs文档)。

对其他箭头键重复最后一步。

术语2

iTerm 2 默认发送预期的序列。

  • 我在香草小牛队机器(MBP 视网膜 2013 年末)上尝试过这个,但如果不停用系统偏好设置 -> 键盘 -> 快捷键 -> 任务控制中的所有 Ctrl+箭头键快捷键,它就无法工作。+1 有关使用`cat` 查看键盘事件的提示 (20认同)
  • 事实上,Ctrl + {箭头键}被映射用于切换应用程序。他们没有发送序列。 (2认同)
  • @Sinbadsoft.com:听起来您没有为该 *tmux* 窗口启用“xterm-keys”;您可能需要“set -gw xterm-keys on”。 (2认同)

小智 12

至少在 Mavericks 和 iTerm2 上,您必须按住Control,然后按下b(而不是按住),然后按住方向按钮。这发送与按住几乎相同的序列Control-b带有方向按钮,因此它可以工作。

此外,请确保转到键盘设置并在快捷方式选项卡中禁用任何任务控制和您可能拥有的此类键盘快捷键Control以及方向键。

  • 谢谢!更改键盘快捷键中的任务控制/应用程序窗口绑定对我来说有所不同 (8认同)

小智 12

您可以在 ctrl-? 中使用元键而不是控制键。和 ctrl-? 组合。在 OSX 终端中,默认的元键是转义键。例如,要增加窗格的大小,请键入 ctrl-b esc-?。

我发现转义键很难触及,所以我使用选项键作为元键。在 Terminal.app 中,您可以通过转至 Terminal > Preferences > Profiles > Keyboard 来更改它:选中“Use Option as Meta Key”。

现在你可以输入 ctrl-b option-? 增加大小或ctrl-b选项-?减少大小,您不必重新映射任务控制键。


小智 10

默认情况下,Mac OS 将 Mission Control 快捷方式绑定到 ctrl+arrows,并且它们优先于 Tmux 控件。无论如何,我不会在 Mac 上使用这些快捷键,因此我只是在键盘设置中将它们关闭,现在 Tmux 控件可以按预期工作:

捷径


小智 6

打开 tmux.conf 文件并使用 vi 进行编辑:

vi ~/.tmux.conf
Run Code Online (Sandbox Code Playgroud)

插入这些行:

set -g mouse on
set -g mouse-select-window on
set -g mouse-select-pane on
set -g mouse-resize-pane on
Run Code Online (Sandbox Code Playgroud)

按“Esc”和“ZZ”保存更改。

现在您可以使用鼠标调整窗格的大小。