When I start tmux
, my ~/.config/fish/config.fish
seems to be sourced again. This means any set PATH foo $PATH
statements in my config
get executed again, which leads to my PATH variable having duplicate entries in it. This isn't drastic, but it is annoying to ECHO path. when it is so long
How can I prevent this problem?
EDIT: the only fish related entires in my tmux file are
#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'
The ~/.config/fish/config.fish config file is read by every new fish instance. There are several ways to achieve what you're asking. One option is to always set PATH
from scratch. That is, don't modify the existing path by appending or prepending to it but instead set it to exactly what you want for a given machine. Something along the lines of
set -gx PATH $HOME/bin /usr/local/bin /usr/bin/ /bin
test -d /opt/X11/bin
and set PATH $PATH /opt/X11/bin
Another option is to add directories only if they aren't already in the path:
contains /usr/local/bin $PATH
or set PATH /usr/local/bin $PATH
Or only do the modification if not inside a tmux session:
if not set -q TMUX
set PATH /argle/bargle $PATH
end