有时在 tmux 中最大化窗格然后将其恢复到以前的大小会非常有用。
我一直在阅读手册,但找不到方法。我想出的是,我可以绑定一个键来将窗格调整为“最大”宽度,另一个键将其恢复到某个预定义的宽度。
当然这有它的缺点,所以我想知道是否有人有更好的主意。
Tyl*_*ien 532
这现在是本机 tmux 功能。
1.8 版-Z在resize-pane. 从手册页:
使用 -Z,活动窗格在缩放(占据整个窗口)和未缩放(其在布局中的正常位置)之间切换。
它绑定到tmux-prefix-z默认情况下在我的安装中(通过 OS X 上的 Homebrew)。
Ham*_*ner 78
现在本地支持,来自以下答案:
1.8 版在调整大小窗格中添加了 -Z 标志。从手册页:
使用 -Z,活动窗格在缩放(占据整个窗口)和未缩放(其在布局中的正常位置)之间切换。
另一种选择是使用break-pane后跟join-pane. 从手册页:
break-pane [-d] [-t target-pane]
(alias: breakp)
Break target-pane off from its containing window to make it the
only pane in a new window. If -d is given, the new window does
not become the current window.
join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
(alias: joinp)
Like split-window, but instead of splitting dst-pane and creating
a new pane, split it and move src-pane into the space. This can
be used to reverse break-pane.
Run Code Online (Sandbox Code Playgroud)
所以你可以选择你的窗格然后做break-pane,然后一旦你完成了最大化的版本,你可以重新加入它join-pane- 可能需要一些默认参数将它放回原位,或者之后重新排列。
请注意,join-pane 似乎在 tmux 1.3 中,但不在 1.1 中。(不确定 1.2,抱歉)。
顺便提一下,终结器(基于 GUI(基于 GTK)的终端多路复用器)可以进行缩放。(Ctrl-Shift-X 是默认的键绑定)。当然,它并没有做 tmux 所做的很多事情......
小智 49
所以我知道你之前问过这个问题......但我直到今天才从屏幕切换!
我遇到了同样的问题,这是我解决的方法:
unbind +
bind + new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \; swap-pane -s tmux-zoom.0 \; select-window -t tmux-zoom
unbind -
bind - last-window \; swap-pane -s tmux-zoom.0 \; kill-window -t tmux-zoom
Run Code Online (Sandbox Code Playgroud)
如果您的工作流程和我的一样(即您最大化一个窗口,做一些工作,然后立即取消最大化),这应该对您很有用。
小智 27
改进的缩放器。现在可以缩放多个窗格,甚至可以分层缩放。执行以下操作并重新加载您的 tmux 服务器(在我的情况下为 Ctrl-r)后,您将x绑定您的密钥以放大和缩小窗格。放大是通过在新窗口中打开窗格来实现的,缩小是通过将窗格返回到其原始窗口来实现的。如果您最终拆分放大窗口,您将能够放大放大窗口的窗格并缩小回到放大窗口。只有在包含单个窗格的放大窗口中才会发生缩小。
将以下内容添加到您的末尾 ~/.tmux.conf
~$ grep "bind x" ~/.tmux.conf
unbind x
bind x run ". ~/.tmux/zoom"
Run Code Online (Sandbox Code Playgroud)
添加以下文件
~$ cat ~/.tmux/zoom
#!/bin/bash -f
currentwindow=`tmux list-window | tr '\t' ' ' | sed -n -e '/(active)/s/^[^:]*: *\([^ ]*\) .*/\1/gp'`;
currentpane=`tmux list-panes | sed -n -e '/(active)/s/^\([^:]*\):.*/\1/gp'`;
panecount=`tmux list-panes | wc | sed -e 's/^ *//g' -e 's/ .*$//g'`;
inzoom=`echo $currentwindow | sed -n -e '/^zoom/p'`;
if [ $panecount -ne 1 ]; then
inzoom="";
fi
if [ $inzoom ]; then
lastpane=`echo $currentwindow | rev | cut -f 1 -d '@' | rev`;
lastwindow=`echo $currentwindow | cut -f 2- -d '@' | rev | cut -f 2- -d '@' | rev`;
tmux select-window -t $lastwindow;
tmux select-pane -t $lastpane;
tmux swap-pane -s $currentwindow;
tmux kill-window -t $currentwindow;
else
newwindowname=zoom@$currentwindow@$currentpane;
tmux new-window -d -n $newwindowname;
tmux swap-pane -s $newwindowname;
tmux select-window -t $newwindowname;
fi
Run Code Online (Sandbox Code Playgroud)
alp*_*989 22
Ctrl+ b(前缀)+z用于放大tmux 2.1. 如果您再次按Ctrl+ b+ z,它会将窗格缩放回原始大小。它不会创建新窗格。
与 aksay 上面发布的解决方案相比,如果您尝试拆分放大的窗格,它将不允许拆分,而是会返回到原始窗格并拆分该窗格。
缩放窗口选项可能更通用......
| 归档时间: |
|
| 查看次数: |
120255 次 |
| 最近记录: |