Eu uso casca de peixe principalmente do Rider IDE e do iTerm2.
Percebi que toda tarefa que implica salvar algo para sessões futuras não funcionará de forma transparente entre os dois contextos mencionados. Mais precisamente se eu definir uma variável exportada universal, ou um alias, eles serão preservados do "contexto" onde foram definidos e estão ausentes do outro.
Por exemplo, esta é a saída do alias
chamado do 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'
E esta é a saída do alias
chamado do iTerm2:
❯ alias
alias br1 'brightness 1'
alias cat bat
alias ll 'ls -l'
alias ls lsd
O mesmo comportamento com variáveis de ambiente.
Os IDEs da Jetbrains executam fish com um ambiente específico para adicionar suas próprias integrações. Eles fazem isso configurando $XDG_CONFIG_HOME, que é onde o peixe encontra suas variáveis universais.
Isso é quebrado de várias maneiras. Veja https://youtrack.jetbrains.com/issue/IDEA-169111
Você pode querer desabilitar a integração do shell em Preferência -> Ferramentas -> Terminal