如何编写tmux脚本,使其自动拆分窗口并打开一组文件?

时间:2019-03-02 00:48:52

标签: tmux

我是Tmux的新手。我知道您可以编写脚本来自动执行Tmux,以防计算机关闭。我可以写以下内容:

#!/bin/bash

tmux new-session -d -s MY_SESSION_NAME
tmux split-window -h
vim <path to file1>

这只会为file1打开一个1个vim编辑器页面,不在tmux中,也不在任何tmux分割中。这样可以自动打开文件吗?

1 个答案:

答案 0 :(得分:0)

这是我在tmux会话中实现的自动化的一个示例。 使用<name>:<window>.<pane>定位特定的会话/窗格/窗口,窗口和窗格从0开始编号。 Send-keys是将命令发送到特定tmux窗格/窗口的方法。 -d导致tmux以分离模式启动,因此您可以在实际附加之前继续向其发送更多命令。

tmuxstart() {
    tmux new-session -d -s sess >/dev/null
    tmux rename-window -t sess:0 'main'
    tmux splitw -v -p 10 -t sess:0.0
    tmux splitw -h -p 80 -t sess:0.1
    #required; otherwise pane numbering is bs
    tmux select-pane -t sess:0.0
    tmux splitw -h -p 5 -t sess:0.0
    tmux send-keys -t sess:0.2 'sudo htop' Enter
    tmux send-keys -t sess:0.1 'tmux clock -t sess:0.1' Enter
    tmux select-pane -t sess:0.0
    tmux new-window -t sess
    tmux rename-window -t sess:1 'second'
    tmux splitw -v -p 10 -t sess:1.0
    tmux splitw -h -p 80 -t sess:1.1
    tmux select-pane -t sess:1.0
    tmux splitw -h -p 5 -t sess:1.0
    tmux clock -t sess:1.1
    tmux new-window -t sess
    tmux rename-window -t sess:2 'scratch'
    tmux splitw -v -p 10 -t sess:2.0
    tmux select-pane -t sess:2.0
    tmux splitw -h -p 5 -t sess:2.0
    tmux clock -t sess:2.1
    tmux select-window -t sess:0.0
    tmux a -t sess
}