您好,我想从不同的文件加载多个环境。例如:
第一个文件建立一个具有1个窗口和3个窗格的会话。 第二个文件使用两个窗口构建一个会话,第一个窗口包含两个窗格,第二个窗口包含一个窗格。
赞:
tmux -f /path/to/file/basic.conf a
然后从第一次会话中分离出来后,我想以相同的方式加载其他环境。
tmux -f /path/to/file/scripting.conf a
但是当我启动第二个命令时,我将附加到第一个会话(basic.conf)。 但是我希望当我启动第二个脚本时,我将附加到第二个会话。
tmux ls仅列出一个会话。
(conf文件本身正在正常运行)
怎么可能通过tmux来通过不同的conf文件建立多个会话,并且仅使用tmux而不使用tmuxinator而不使用tmuxp或其他任何东西?
还是我应该有一个大的conf文件来构建多文件conf文件中的所有内容?
basic.conf
SESSION_NAME="basic"
FIRST_WINDOW="shells"
SECOND_WINDOW="console"
source ~/.tmux.conf
new-session -s $SESSION_NAME -n $FIRST_WINDOW -d
split-window -h -t $SESSION_NAME
split-window -v -t $SESSION_NAME
new-window -n $SECOND_WINDOW -t $SESSION_NAME
select-window -t $SESSION_NAME:0.0
scripting.conf
SESSION_NAME="script"
FIRST_WINDOW="editor"
SECOND_WINDOW="console"
source ~/.tmux.conf
new-session -s $SESSION_NAME -n $FIRST_WINDOW -d
split-window -v -p 5 -t $SESSION_NAME
send-keys -t $SESSION_NAME:0.0 'cd ~/Code' C-m
send-keys -t $SESSION_NAME:0.0 'vim' C-m
send-keys -t $SESSION_NAME:0.1 'cd ~/Code' C-m
send-keys -t $SESSION_NAME:0.1 C-l C-m
new-window -n $SECOND_WINDOW -t $SESSION_NAME
send-keys -t $SESSION_NAME:1 'cd ~/Code' C-m
select-window -t $SESSION_NAME:0
答案 0 :(得分:0)
我想我自己找到了解决方法。
命令:
tmux -f /path/to/file.conf a
仅在您要加载另一个tmux配置文件而不是默认文件时使用。
如果您想启动多个会话(这些会话已在文件中预先配置),则必须执行以下操作:
tmux source-file -q .dotfiles/tmux/enviroments/basic.conf && tmux attach -t basic
也许有更好的解决方案,但是现在这可以解决我的问题。
P.S。我做了一些小功能来使文件加载变得更简单。
function muxload(){
if [ -f ~/.dotfiles/tmux/enviroments/$1 ]; then
tmux source-file -q ~/.dotfiles/tmux/enviroments/$1 && tmux attach -t $1
fi
if [ -f ~/.dotfiles/tmux/enviroments/$1.conf ]; then
tmux source-file -q ~/.dotfiles/tmux/enviroments/$1.conf && tmux attach -t $1
fi
}
像这样运行它:
muxload {name_of_conf_file}