tmux split-window shell 命令,在 shell 开始之前设置环境变量

tmux split-window shell command, set env variable before shell start

在我的 tmux 配置中,我有一个拆分 window 命令:

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 手册的 split-window 中所定义。但是,我的 shell 包含许多与此自定义 tmux 键绑定无关的初始化脚本。而且他们很慢。我可以在 split-window 开始 shell 会话之前设置一个环境变量,这样我就可以跳过一些 shell 初始化脚本吗?

注:在现在使用的那个tmux环境下更新。

您可以在命令管道的开头设置此变量。然后,您的 shell 初始化脚本可以检查其值并相应地执行操作,例如跳过初始化的某些部分。

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"

我假设这是 Ubuntu 下的 运行,它利用了 bash。在你的 bashrc 中写下这样的东西:

if [ "$TMUXSPLIT" = 1 ]; then
    ...
fi