我主要使用来自 Rider IDE 和 iTerm2 的鱼壳。
我注意到,每一项意味着为未来会话保存内容的任务都不会在上述两个上下文之间透明地运行。更准确地说,如果我定义了一个通用导出变量或别名,它们将从定义它们的“上下文”中保留下来,而另一个则不存在。
例如,这是alias
从 Rider IDE(终端视图)调用的输出:
❯ 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'
这是alias
从 iTerm2 调用的输出:
❯ alias
alias br1 'brightness 1'
alias cat bat
alias ll 'ls -l'
alias ls lsd
与环境变量相同的行为。
Jetbrains IDE 在特定环境中运行 fish 以添加自己的集成。他们通过设置 $XDG_CONFIG_HOME 来做到这一点,这是 fish 找到其通用变量的地方。
这以多种方式被打破。见https://youtrack.jetbrains.com/issue/IDEA-169111
您可能希望在 Preference -> Tools -> Terminal 中禁用 shell 集成