tmux - Tmux 从不同的文件加载多个环境
问题描述
您好我想从不同的文件加载多个环境。例如:
第一个文件构建一个包含 1 个窗口和 3 个窗格的会话。Second File 建立一个有 2 个窗口的会话,第一个窗口有 2 个窗格,第二个窗口有一个窗格。
喜欢:
tmux -f /path/to/file/basic.conf a
然后从第一个会话中分离后,我想以相同的方式加载其他环境。
tmux -f /path/to/file/scripting.conf a
但是当我触发第二个命令时,我将附加到第一个会话(basic.conf)。但我希望当我触发第二个脚本时,我会附加到第二个会话。
并且 tmux ls 仅列出一个会话。
(conf文件本身运行没有问题)
如何通过 tmux 的不同 conf 文件构建多个会话,并且仅使用 tmux no tmuxinator no tmuxp 或其他任何东西?
还是我应该有一个大的 conf 文件来构建现在在 muliply 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
脚本配置文件
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
解决方案
我想我自己找到了解决方案。
命令:
tmux -f /path/to/file.conf a
仅当您想加载另一个 tmux 配置文件而不是默认配置文件时才应使用。
如果您想启动多个会话,这些会话预先配置在文件中,那么您必须执行以下操作:
tmux source-file -q .dotfiles/tmux/enviroments/basic.conf && tmux attach -t basic
也许有更好的解决方案,但现在这解决了我的问题。
PS我做了一个小功能来加载文件不太复杂。
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}
推荐阅读
- javascript - 通过 github 页面托管时出现问题
- javascript - 打印时不显示可见的 Textarea 内容
- android - 如何在android中实现阴影(环境光)背景?
- ios - Swift 中的@dynamicCallable 是什么?
- c# - 使用 Aforge.Video.FFMPEG 创建单个 exe 不起作用 -Costura Fody c#
- javascript - 当我们打开一个弹出窗口时关闭另一个弹出窗口
- java - 我可以将 ElasticSearch 索引直接存储在文件系统中吗?
- java - Ktor Netty 服务器返回空响应
- c# - 用函数替换字典
- python - 打印 CNN 模型的模型摘要时,输入层是一个垃圾整数。此外,训练后的模型有 96% 的错误