如何绑定一个键以切换到最后一个窗格,或者如果没有窗格,则是最后一个窗口?

时间:2012-09-10 00:00:43

标签: tmux

如果我在宽屏显示器上工作,我主要使用两个窗格,并使用C-a Ca在它们之间切换。

如果我正在使用方形显示器,我将使用两个窗口。我希望能够使用C-a C-a切换它们,而无需更改tmux.conf

2 个答案:

答案 0 :(得分:11)

如果你总是想要C-a

    当活动窗口有多个窗格时,
  • 在窗格之间切换,
  • 当活动窗口只有一个窗格时,在窗口之间切换

然后您可以使用if-shell来计算活动窗口中窗格的数量,以便在last-panelast-window之间做出决定:

bind-key C-a if-shell 'test $(tmux list-panes | wc -l) -gt 1' 'last-pane' 'last-window'

在“广角”和“方形”配置之间切换时,重新排列窗格仍然“取决于你”(例如,通过break-panejoin-pane)。


tmux 1.8 if-shellrun-shell进行格式化扩展,所以你可以简单地使用shell命令:

bind-key C-a if-shell 'test #{window_panes} -gt 1' 'last-pane' 'last-window'

答案 1 :(得分:1)

我想建议以下内容(调整80以区分您的两个终端宽度)

if-shell '[ "$COLUMNS" -gt 80 ]' 'bind-key C-a "select-window -t :.+"' 'bind-key C-a "next-window"'

但是我要弄乱语法,或者COLUMNS没有在相关的tmux环境中设置,因为上面的shell表达式总是为我评估false。