即使我开始将tmux用于窗格,我仍然使用屏幕来复用其中的窗口。tmux应该具有此功能,但是对我而言,将窗格从一个窗口交换到另一个窗口并不直观,两个附加的tmux查看器也不能在同一守护程序中查看不同的窗口(screen -x行为),因此是tmux的屏幕解决方案。这是两个tmux.conf绑定,它们使我花费了最长的时间,并且每天都在使用。
第一个绑定M(ctrl-b shift-M)在鼠标窗格选择器和鼠标高亮/复制之间切换tmux。您仍然可以在窗格选择模式下进行复制/粘贴,但是您必须按住shift键(如果习惯了这种习惯,在任何其他应用程序中进行复制/粘贴会使您有些痛苦,让我告诉您)。该宏还可以使您直观地看到当前选择了哪种模式。
bind M set mouse-select-pane \; if '[ "`tmux show -v mouse-select-pane`"= "on" ]' "set status-bg cyan \; set pane-active-border-bg cyan" "set status-bg green \; set pane-active-border-bg default"
第二个,绑定CL(ctrl-b ctrl-l),将采用4个窗格的任何布局,并将其转变为我的首选布局。通常,我会发现我在我认为是在屏幕内的窗格中击中了ctrl-d来关闭它,但是却没有屏幕会话,因此它关闭了该窗格。由于我的布局是v-split,h-split,v-split和某些调整大小的,因此,如果我不小心关闭了除最后一个窗口以外的任何窗口,关闭我需要重新创建的窗口之间的任何中间窗格将变得很痛苦(无双关语)。最后,然后重新创建窗格并调整其大小,最后重新附加我在杀死窗格时可能不得不分离的所有屏幕会话。有了这个宏,我可以创建一个新窗格ctrl-b {(交换窗格-U的默认绑定),直到它以正确的顺序返回,然后单击该宏,一切恢复正常。我首选的布局可能与您的布局不同,list-windows
命令以获取如下所示的布局字符串。
bind C-L select-layout a18e,155x94,0,0[155x18,0,0,6,155x75,0,19{81x75,0,19,31,73x75,82,19[73x22,82,19,32,73x52,82,42,33]}]
如果那太天真了,无法满足您的口味,那么总会有tmuxinator用于面板管理。
zombie qr
即使进程已死,也保持窗口打开状态,并允许q
将其关闭或r
恢复进程。对于软件验证很有用。