我如何设置tmux,使它启动与指定的窗口打开?


当前回答

py允许您在每个窗格中简单地列出所需的命令,并以包含三个破折号的行作为前缀。

下面是一个示例smux文件,它启动了三个窗格。

---
echo "This is pane 1."
---
cd /tmp
git clone https://github.com/hq6/smux
cd smux
less smux.py
---
man tmux

如果你把它放在一个叫做Sample的文件里。Smux,然后可以运行以下命令来启动。

pip3 install smux.py
smux.py Sample.smux

完全免责声明:我是smux.py的作者。

其他回答

:~$ tmux new-session "tmux source-file ~/session1"  

session1

neww
split-window -v 'ipython'  
split-window -h  
new-window 'mutt'  

在.bashrc中创建别名

:~$ echo `alias tmux_s1='tmux new-session "tmux source-file ~/session1"'` >>~/.bashrc  
:~$ . ~/.bashrc  
:~$ tmux_s1  

您可以编写一个小型shell脚本,用所需的程序启动tmux。我在一个称为dev-tmux的shell脚本中有以下内容。开发环境:

#!/bin/sh
tmux new-session -d 'vim'
tmux split-window -v 'ipython'
tmux split-window -h
tmux new-window 'mutt'
tmux -2 attach-session -d

所以每次我想启动我最喜欢的开发环境时,我都可以这样做

$ dev-tmux

tmuxp支持JSON或YAML会话配置和python API。一个用YAML语法创建新会话的简单tmuxp配置文件是:

session_name: 2-pane-vertical
windows:
  - window_name: my test window
    panes:
      - pwd
      - pwd

创建新会话时,可以使用tmux钩子执行命令。具体来说,这是使用会话创建的钩子实现的。

例如,你可以在~/.tmux.conf文件中添加以下代码,将屏幕分成三部分,top在右下角运行:

set-hook -g session-created 'split -h ; split -v top'

这种方法的优点是,您不必以任何特殊的方式(即shell脚本或别名)运行tmux来获得所需的结果。您还可以将其与tmux new-session -A -s mysession结合使用,这样钩子命令只在您第一次创建会话时运行,而不是在后续的附件上运行。

该功能是由d15d54c2c在2016年添加的。包含它的第一个发行版是2.4。

你应该在你的tmux配置文件(~/.tmux.conf)中指定它,例如:

new mocp
neww mutt

new -d
neww
neww

(打开一个会话,2个窗口,第一个启动mocp,第二个启动mutt,另一个分离会话,3个空窗口)。