我正在使用 oh-my-zsh 作为我的终端。 我已将 IntelliJ 设置为使用 /bin/zsh
作为 shell 路径。然而,我的.zshrc
文件中的任何环境变量似乎都没有被提取。我是这样定义环境变量的(例如):
export GOOGLE_APPLICATION_CREDENTIALS="$HOME/mailcreds.json"
但是如果我运行:
echo $GOOGLE_APPLICATION_CREDENTIALS
没有任何内容显示。
我正在使用 oh-my-zsh 作为我的终端。 我已将 IntelliJ 设置为使用 /bin/zsh
作为 shell 路径。然而,我的.zshrc
文件中的任何环境变量似乎都没有被提取。我是这样定义环境变量的(例如):
export GOOGLE_APPLICATION_CREDENTIALS="$HOME/mailcreds.json"
但是如果我运行:
echo $GOOGLE_APPLICATION_CREDENTIALS
没有任何内容显示。
对我来说,问题在于我使用.zshrc
自动加载了tmux
。
我按照这里的解决方案进行操作:https://youtrack.jetbrains.com/articles/IDEA-A-19/Shell-Environment-Loading
只需将export ZSH_TMUX_AUTOSTART=true
包装起来,就像这样:
if [ -z "$INTELLIJ_ENVIRONMENT_READER" ]; then
export ZSH_TMUX_AUTOSTART=true
fi
对于Ubuntu系统,我编辑了我的IDE桌面启动器以使用login interactive来运行zsh:
/usr/share/applications
目录(通常是桌面入口的位置),如果您使用Snap,则前往/var/lib/snapd/desktop/applications
目录。jetbrains-idea.desktop
文件(可能会有不同的名称)。Exec
字段更改为包括/bin/zsh -l -i -c "/opt/intellij/bin/idea.sh"
。文件的最终结果:
[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA Ultimate Edition
Icon=/opt/intellij/bin/idea.svg
Exec=/bin/zsh -l -i -c "/opt/intellij/bin/idea.sh" %f
Comment=Capable and Ergonomic IDE for JVM
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-idea
StartupNotify=true
在Manjaro(Arch)中,与Intellij共享相同的错误行为,它默认使用zsh。
问题出现在Flatpak中,切换到Snap或直接从供应商页面下载二进制文件即可解决此问题。
类似于此问题(PyCharm):https://github.com/flathub/com.jetbrains.IntelliJ-IDEA-Ultimate/issues/23。
我通过在终端中打开Intellij来解决这个问题。如果不存在,则需要创建命令行启动器。
工具
-> 创建命令行启动器
idea
这将打开Intellij并启动应用程序,这样就能访问您的系统环境属性。
~/.profile
是用于 bash 的登录 shell 脚本,而 zsh 的等效登录文件是~/.zprofile
。话虽如此,我更倾向于 Jetbrains 链接中的 "Workaround 3",因为/etc/zshrc
(适用于 Mac)明确建议在 .zshrc 中进行覆盖设置:$ cat /etc/zshrc | grep override # 在 ~/.zshrc 中设置用户特定的覆盖设置。参见 zshbuiltins(1)
- undefined