如何同时打开多个窗格来启动tmux?


23

假设我开始tmux并立即执行Ctrl+ b+ %Ctrl+ b+ "

这在屏幕左侧为我提供了一个较高的窗格;屏幕的右侧具有顶部和底部窗格。

如何配置tmux以在此配置中启动而不必键入这些命令?


如果您需要单击一次一次打开几个终端,则可以使用终结器来完成。从软件中心安装。
SAGAR Nair

谢谢,这是一个很好的命令!对于我的特殊情况,这是到远程计算机的ssh会话。
马克·哈里森

Answers:



15

您可以使用以下shell脚本进行配置:

#!/bin/sh 
tmux new-session -s "mySession" -d
tmux split-window -h
tmux split-window -v
tmux -2 attach-session -d 

如上所述,这将通过以下命令提供所需的屏幕配置。tmux-> Ctrl+ b+ %-> Ctrl+ b+"

作为参考,请使用tmux手册页


4

tmux使用Byobu应用程序可以轻松启用和禁用登录时的自动会话。您可以将Byobu用作tmux解决此需求的接口,这使得执行所需的操作变得简单。在终端中,运行以下命令:

sudo apt-get install byobu
sudo byobu-enable
sudo -i

当root用户通过控制台,SSH或使用SSH登录时sudo -i,Byobu将附加到现有tmux会话或创建一个新会话(如果尚未运行)。使用sudo -i代替sudo -s。该-s选项仅启动外壳程序,而不启动登录外壳程序。您应该使用sudo -i模拟完整的登录名,该登录名也会加载roots ~/.profile,这是byobu在运行时会自行安装的位置

byobu-enable

您可以如下配置不同的会话.tmux.conf

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

然后,您可以根据需要设置会话的格式:

#session1
new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

这将打开2个窗口,其中第二个窗口将命名为foo / bar,并且foo在bar上方运行时将垂直拆分为一半(50%)。焦点将位于窗口2(foo / bar),顶部窗格(foo)中。

Byobu使自动设置和启动tmux非常简单。


1
为什么bind S vs bind s?(首先是大S,然后是小S?)
knb

3

TMUX-复活插件将使建立会话持久性以及保存和跨TMUX会话恢复设置提供额外的功能。

许多其他功能可用。从插件网页:

该插件竭尽全力从您的tmux环境中保存和还原所有细节。

  • 所有会话,窗口,窗格及其顺序
  • 每个窗格的当前工作目录
  • 窗口内精确的窗格布局(即使缩放)
  • 活动和替代会话
  • 每个会话的活动和备用窗口
  • 具有每个窗口焦点活动窗格的窗口
  • 在窗格中运行的“分组会话”(在多显示器中使用tmux时有用的功能)程序!

安装:

  1. 在终端中,导航到您的tmux插件目录(在我的情况下为~/dotfiles/tmux/plugins)。
  2. 使用以下命令克隆存储库:git clone https://github.com/tmux-plugins/tmux-resurrect

  3. 编辑.tmux.conf文件并添加行set -g @plugin 'tmux-plugins/tmux-resurrect'

  4. 刷新用下面的命令TMUX环境:tmux source-file ~/dotfiles/tmux/tmux.conf
  5. 输入所需的布局。在这种情况下Ctrl- b %Ctrl- b "
  6. 通过输入命令Ctrl- b+ Ctrl- 保存您的tmux会话s
  7. 下次启动tmux会话时,输入命令Ctrl- b+ Ctrl- r恢复tmux会话。

如前所述,除了设置tmux会话的窗格布局之外,此插件还可以设置持久性工作目录,并使正在运行的应用程序随每个会话重新启动。


2

我给自己写了一个bash脚本:

# filename tmuxv in /home/<username>/Bash/tmuxv/

#!/bin/bash
tmux new-session \; split-window -v \; rename-window ${1} \; attach

并在我的〜/ .bash_aliases中放置一个别名

alias tmuxv="/home/<username>/Bash/tmuxv/tmuxv"

因此,现在我可以简单地键入内容,tmuxv PYTHON并使用一个名为PYTHON的窗口进行垂直拆分的tmux会话,这很好,因为该窗口名称反映在我的gnome-terminals选项卡名称中。


1
好的答案,但请在最后删除问题。尝试将其作为一个新问题提出,这将确保更多的人看到它。
汤姆·布鲁斯曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.