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
当我开始 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