tmux split window shell命令,在shell启动之前设置env变量
在我的tmux配置中,我有一个拆分窗口命令:tmux split window shell命令,在shell启动之前设置env变量,shell,tmux,Shell,Tmux,在我的tmux配置中,我有一个拆分窗口命令: bind C-j split-window -v "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^\"(tmux display-message -p '#S')\"\\\$\" | fzf --reverse | xargs tmux switch-client -t" 它将在一个shell会话中运行tmux手册的拆分窗口中定义的所有命令。但是,我的shell包含许多与这个定制tmux键绑
bind C-j split-window -v "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^\"(tmux display-message -p '#S')\"\\\$\" | fzf --reverse | xargs tmux switch-client -t"
它将在一个shell会话中运行tmux手册的拆分窗口中定义的所有命令。但是,我的shell包含许多与这个定制tmux键绑定无关的init脚本。而且速度很慢。我可以在
拆分窗口开始shell会话之前设置一个env变量,这样我就可以跳过一些shell初始化脚本吗?注意:现在正在使用在该tmux环境中更新的脚本。
可以在命令管道的开头设置此变量。然后,您的shell init脚本可以检查其值,并相应地像跳过初始化的某些部分一样进行操作
bind C-j set-environment TMUXSPLIT 1 \; split-window -v "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^\"(tmux display-message -p '#S')\"\\\$\" | fzf --reverse | xargs tmux switch-client -t"
我假设这是在使用bash的Ubuntu下运行的。在您的bashrc中,编写如下内容:
if [ "$TMUXSPLIT" = 1 ]; then
...
fi
你能看看我的建议吗?@yacc对不起,我留下了评论。这是一个很好的答案。缺点是$tmuxspilt env var将出现在所有新窗格中,而不仅仅是使用前缀+C-j
键绑定的窗格。它确实存在@BrunoSutic descript的问题。但是如果在分割窗口
之后执行setenv-r tmuxslit
,则应删除该env。但它有什么坏处吗?好主意。如果在split window
之后用set env-r
删除If,那么我认为这没有什么坏处。@Daiwai我建议在完成测试并感到满意后,用完整的解决方案发布一个答案。