tmux + 鱼 shell; conf被两次采购

tmux + fish shell; conf being sourced twice

当我开始 tmux 时,我的 ~/.config/fish/config.fish 似乎又 来源了。这意味着我的 config 中的任何 set PATH foo $PATH 语句都会再次执行,这会导致我的 PATH 变量中有重复的条目。这并不激烈,但对 ECHO 路径来说很烦人。这么长的时候

我怎样才能避免这个问题?

编辑:我的 tmux 文件中唯一与鱼相关的内容是

#fix vim set -g default-shell $SHELL set -g default-command "reattach-to-user-namespace -l ${SHELL}" set -g default-command 'reattach-to-user-namespace $SHELL --login'

每个新的 fish 实例都会读取 ~/.config/fish/config.fish 配置文件。有几种方法可以实现您的要求。一种选择是始终从头开始设置 PATH。也就是说,不要通过附加或前置到现有路径来修改现有路径,而是将其设置为给定机器所需的确切内容。类似于

set -gx PATH $HOME/bin /usr/local/bin /usr/bin/ /bin
test -d /opt/X11/bin
and set PATH $PATH /opt/X11/bin

另一种选择是仅当目录不在路径中时才添加目录:

contains /usr/local/bin $PATH
or set PATH /usr/local/bin $PATH

或者仅在不在 tmux 会话中进行修改:

if not set -q TMUX
    set PATH /argle/bargle $PATH
end