我一直在阅读手册,但找不到方法。我想出的是,我可以绑定一个键以将窗格的大小调整为“最大”宽度,并绑定另一个键以将其恢复为预定义的宽度。
当然这有其缺点,所以我想知道是否有人有更好的主意。
#1 楼
tmux 1.8及更高版本现已得到本机支持,来自以下答案:
1.8版在调整大小窗格中增加了-Z标志。在手册页中:
使用-Z,活动窗格在缩放(占据整个窗口)和未缩放(在布局中的正常位置)之间切换。 >
旧的tmux(原始答案)
另一种选择是使用
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.
因此,您可以选择窗格并执行
break-pane
,然后在完成最大化版本后,可以与join-pane
重新加入-可能需要一些默认参数才能将其放回原位,或者稍后再重新排列。请注意,join-pane在tmux 1.3中似乎存在,但在1.1中却没有。 (不确定1.2,对不起)。
还要提一下终结器(一个GUI(基于GTK)终端多路复用器)可以进行缩放。 (Ctrl-Shift-X是默认的键盘绑定)。当然,它并没有tmux做的很多事情...
#2 楼
现在,这是本机tmux的功能。1.8版在
-Z
中增加了resize-pane
标志。在手册页中:使用-Z,活动窗格在缩放(占据整个窗口)和未缩放(在布局中的正常位置)之间切换。 。
在我的安装上,默认情况下它绑定到tmux-prefix-z(通过OS X上的Homebrew)。
评论
太好了,只需将其添加到我的.tmux.conf中即可,现在体验更加流畅:bind-key z resize-pane -Z
– St-Ste-Ste-Stephen
2014年8月5日下午13:23
是否可以某种方式使浸入式玻璃的边缘可见以指示深度?我忘了放大,而“ Z标题”还不够突出。
–lkraav
16-2-21在23:15
开箱即用,可在BunsenLabs中工作。
– Mateusz Piotrowski
16年4月2日在20:37
太棒了它实际上有效
–sayem siam
19年2月5日在16:38
@lkraav请参阅更改缩放窗格的Tmux背景颜色。
–卡米尔·马乔洛夫斯基(Kamil Maciorowski)
19年7月30日在9:30
#3 楼
所以我知道你前一段时间问过这个问题...但是直到今天我才从屏幕上切换!我遇到了同样的问题,这是我的解决方法:
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
如果您的工作流程像我的(例如,最大化一个窗口,做一些工作,然后立即将其最大化),这将对您非常有用。
评论
(以防万一,在原始窗口中保留布局...最大化和非最大化后,它是完全相同的。)
–瑞安
2011年11月15日在20:22
知道如何将相同的击键映射到两者吗?诸如bind c-m select-window -t tmux-zoom之类的东西? <最小化>:<最大化>。但是现在为了简洁起见,我想在其他地方定义此函数,并只绑定c-m:max_or_min。那可能吗?我发现很难搜索。 (我发现我经常会打错命令,并最终创建其他空的“ tmux-zoom”窗口。)
–chadoh
2012年4月3日13:44
仅当我从最大化中删除“ clear && echo TMUX ZOOM && read”时,这才对我有用。
–Epeli
2012年4月8日18:32
最大化对我有用,但是最小化动作只会杀死原始窗口,留下最大化窗格。
–天堂
2012年4月15日在11:53
这种工作,但是我几乎失去了布局。
–约翰·亨特
2012年7月4日在10:23
#4 楼
改进的变焦器。现在,可以缩放多个窗格,甚至可以缩放。完成以下操作并重新加载tmux服务器(在我的情况下为Ctrl-r)后,您将必须使用x键来放大和缩小窗格。放大是通过在新窗口中打开窗格来实现的,而缩小是通过将窗格返回其原始窗口来实现的。如果最终分割了放大窗口,则可以放大到放大窗口的窗格,然后缩小回到放大窗口。仅在包含单个窗格的放大窗口中才会发生缩小。在
~/.tmux.conf
的末尾添加以下内容~$ grep "bind x" ~/.tmux.conf
unbind x
bind x run ". ~/.tmux/zoom"
>添加以下文件
~$ cat ~/.tmux/zoom
#!/bin/bash -f
currentwindow=`tmux list-window | tr '\t' ' ' | sed -n -e '/(active)/s/^[^:]*: *\([^ ]*\) .*//gp'`;
currentpane=`tmux list-panes | sed -n -e '/(active)/s/^\([^:]*\):.*//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
评论
只有一个投票?!这个答案真棒!效果很好,引入了不错的新功能,现在完全取代了我以前使用的庞大的“终止程序”程序。
– sillyMunky
2012年8月27日10:49
+1这真的很好!到目前为止,我遇到的最好的解决方案!谢谢!!
–armandino
2012年11月8日下午6:07
我同意。这行得通,而且很棒。屏幕++
–布拉德公园
13 Mar 6 '13 at 3:28
+1。这很好用,但至少比我的@Ryan的答案慢了几分之一秒(约0.8秒)。没什么大不了的,但我想知道是否有办法使其更快
–阿梅里奥·巴斯克斯·雷纳(Amelio Vazquez-Reina)
2013年3月6日15:55
确实美丽。我喜欢特殊的窗格名称(zoom @…),它们是有用的提醒,以及单个“ x”放大/缩小命令。
– Eric O Lebigot
2013年6月9日14:26
#5 楼
Ctrl + b(前缀)+ z用于放大tmux 2.1
中的特定窗格。再次按Ctrl + b + z,将窗格缩放回原始大小。它不会创建新的窗格。 与aksay上面发布的解决方案相比,如果您尝试拆分放大的窗格,则将不允许拆分,而是返回到原始窗格并拆分该窗格。
缩放窗口选项可能更通用...
#6 楼
现在,有一个默认的快捷方式:tmux前缀+ z
通常是:
Ctrlb + z
#7 楼
我这样做是通过相同的按键来最大化/最小化:bind C-k run "if [[ $(tmux list-window) =~ ZOOM ]]; then tmux last-window; tmux swap-pane -s ZOOM.1; tmux kill-window -t ZOOM; else tmux new-window -d -n ZOOM; tmux swap-pane -s ZOOM.1; tmux select-window -t ZOOM;fi"
#8 楼
对我来说,也没有“清除&&回显TMUX ZOOM &&阅读”的工作。每次使用此代码片段时,我将从第一个窗口最小化的一个窗格消失。#9 楼
resize-pane -Z
是切换按钮的问题在于,有时它会执行比所需的反向缩放操作,尤其是从脚本或在tmux.conf
内部调用时。以下是变通方法:
tmux-zoom-in.sh
#!/bin/bash
# Zoom in the current pane ONLY if it is not currently zoomed.
# Requires tmux version >= 1.8
tmux list-panes -F '#F' | grep -q Z || tmux resize-pane -Z
tmux-zoom-out.sh
#!/bin/bash
# Zoom out the current pane ONLY if it is not currently zoomed.
# Requires tmux version >= 1.8
tmux list-panes -F '#F' | grep -q Z && tmux resize-pane -Z
#10 楼
对于那些无法使用tmux 1.8或更喜欢更长的最大化状态的用户,我发布了一个可与tmux 1.6+一起使用的tmux脚本。希望有所帮助。
#11 楼
我在Ubuntu 12.04上,也需要此功能。从tmux 1.8开始,原生支持使用tmux-prefix z进行缩放切换。由于我们可能不会在12.04中看到tmux 1.8,因此我从另一台开发计算机上的源代码编译了tmux 1.8,将其重命名为_tmux-1.8,然后将1.8二进制文件复制到/usr/bin/_tmux-1.8并编辑了.bash_aliases->别名。 tmux ='_ tmux-1.8'。使用这种快速而肮脏的方法我没有发现任何问题,并且当/如果tmux 1.8达到12.04时,我还没有损坏任何东西。
#12 楼
对于较旧版本的tmux,此解决方案是我发现的唯一可行的解决方案:https://github.com/jipumarino/tmux-zoom
评论
从1.8版开始,有一个更好的解决方案(请参阅Tyler Holien的答案)。
–莫马拉
13-10-30在13:19
对于在更好的答案之前尝试过此操作的人,要使连接窗格正常工作,请执行以下操作:join-pane -t:{previous}用于上一个窗口,或join-pane -t:0将其连接回到窗口0。
–现实
18年1月12日在22:57
C-b-z是我认为大多数人都在寻找的答案。
–user1717828
20 Feb 16'0:51