I use fish shell mainly from Rider IDE and iTerm2.
I've noticed that every task that implies saving something for future sessions will not operate transparently between the two aforementioned contexts. More precisely if I define a universal exported variable, or an alias, they'll be preserved from the "context" where they were defined and are absent from the other one.
For example, this is the output of alias
invoked from Rider IDE (Terminal View):
❯ alias
alias br1 'brightness 1'
alias cat bat
alias cdg 'cd $(git rev-parse --show-cdup)./'
alias l ls
alias ll 'ls -l'
alias ls lsd
alias lt 'lsd -l --tree'
And this is the output of alias
invoked from iTerm2:
❯ alias
alias br1 'brightness 1'
alias cat bat
alias ll 'ls -l'
alias ls lsd
The same behaviour with environment variables.