![Fish shell:通用变量和别名不在“上下文”之间共享](https://linux22.com/image/207788/Fish%20shell%EF%BC%9A%E9%80%9A%E7%94%A8%E5%8F%98%E9%87%8F%E5%92%8C%E5%88%AB%E5%90%8D%E4%B8%8D%E5%9C%A8%E2%80%9C%E4%B8%8A%E4%B8%8B%E6%96%87%E2%80%9D%E4%B9%8B%E9%97%B4%E5%85%B1%E4%BA%AB.png)
我主要使用 Rider IDE 和 iTerm2 中的 Fish shell。
我注意到,每一项意味着为将来的会话保存一些内容的任务都不会在上述两个上下文之间透明地运行。更准确地说,如果我定义一个通用导出变量或别名,它们将从定义它们的“上下文”中保留下来,并且在另一个变量中不存在。
例如,这是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
环境变量的行为相同。
答案1
Jetbrains IDE 在特定环境中运行 Fish,以便添加自己的集成。他们通过设置 $XDG_CONFIG_HOME 来做到这一点,这是 Fish 找到其通用变量的地方。
这可以通过多种方式被打破。看https://youtrack.jetbrains.com/issue/IDEA-169111
您可能想在“首选项”->“工具”->“终端”中禁用 shell 集成