我喜欢Oh My Zsh,但它在JetBrains产品的终端中从未正常工作过:
- 找不到可执行文件
- 无法使用pyenv、sdkman、rvm等版本管理器
哦,我的zsh是zsh shell 增强,所以实际的问题可以减少到只让zsh正常工作。我已经尝试切换所有的终端配置选项(单独和集体)后,阅读了一些intellij问题,以有效。
参考:https://github.com/robbyrussell/oh-my-zsh
我喜欢Oh My Zsh,但它在JetBrains产品的终端中从未正常工作过:
哦,我的zsh是zsh shell 增强,所以实际的问题可以减少到只让zsh正常工作。我已经尝试切换所有的终端配置选项(单独和集体)后,阅读了一些intellij问题,以有效。
参考:https://github.com/robbyrussell/oh-my-zsh
8条答案
按热度按时间kb5ga3dv1#
在我的例子中,使用MacOSX,我只是改变 shell 路径
Preferences -> Tools -> Terminal -> Application Settings -> Shell path
将
/bin/sh
替换为/bin/zsh
00jrzges2#
找不到二进制文件,无法运行东西?显然是$PATH问题,但是是什么,为什么?
我在iTerm2中回显了已知的正确路径
/Users/starver/.sdkman/candidates/maven/current/bin:/Users/starver/.sdkman/candidates/groovy/current/bin:/Users/starver/.sdkman/candidates/gradle/current/bin:/usr/local/Cellar/pyenv-virtualenv/1.1.3/shims:/Users/starver/.pyenv/shims:/Users/starver/.pyenv/bin:/Users/starver/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/opt/X11/bin:/usr/local/git/bin:/Users/starver/bin/:/Users/starver/code/go/bin/:/Users/starver/.rvm/bin
在IntelliJ中:
这暗示了一个启动文件加载问题。我的zsh手册页说加载顺序应该是:
/etc/zshenv
$ZDOTDIR/.zshenv
/etc/zprofile
$ZDOTDIR/.zprofile
/etc/zshrc
$ZDOTDIR/.zshrc
/etc/zlogin
$ZDOTDIR/.zlogin
在向每个存在的文件添加
echo
后,我得到了iTerm2的以下内容:而这在IntelliJ中
IntelliJ认为这不是一个登录shell,在Jetbrains终端配置中不能输入
/bin/zsh --login
;没有效果,玩了一段时间后,我发现打开工具-〉终端-〉 shell 集成使终端成为"登录 shell ",启动文件加载故事改善了一点:请注意,没有任何全局zsh启动文件,这是根本问题:
/etc/zprofile
包含:其中man path_helper解释了:
path_helper实用程序读取目录/etc/paths. d和/etc/manpaths. d中文件的内容,并将其内容分别附加到PATH和MANPATH环境变量中。(除非已在环境中设置了MANPATH环境变量,否则不会修改它。)
在shell启动期间至少执行一次
path_helper
非常重要:paths
和paths.d
是系统和第三方安装程序定义其路径添加的位置。不执行系统配置文件启动文件是/usr/local/bin
、/usr/local/go
等不在路径上的原因。我尝试了几种方法,寻找一个优雅的解决方案。显然,jediterm终端实现阻止挂钩到一个标准的终端启动过程-所以他们在
/Applications/IntelliJ IDEA.app/Contents/plugins/terminal/.zshrc
中实现了启动文件加载。我们可以修复这个实现!!将该文件替换为:现在,在IntelliJ终端启动时,我看到
第一个
/etc/zshrc
是在插件的.zshrc
之前执行的,对此我无能为力,而且它不会造成任何不良的副作用...重复这个过程的每一个JetBrains产品,你可以有喜悦,是哦,我的Zsh无处不在。
brtdzjyr3#
尝试取消注解
~/.zshrc
中的第一个字符串:它帮了我。
pinkon5k4#
对我来说是
terminal command
,或者简称:这将加载Mac中的/etc/zprofile和所有登录脚本。
0kjbasz65#
我可以确认in this answer的所有内容,但有一个更简单的解决方案,基于这样一个事实,即加载
path_helper
两次并不重要。因此,直到JetBrains修复他们的终端插件,只要把
source /etc/zprofile
到您的~/.zshrc
文件和利润!vq8itlhq6#
在Fedora 32中,zoppo在zsh上的回复没有任何效果:/
配置文件已加载,但好像缺少一些配置文件(很抱歉,我没有提供详细信息),手动添加配置文件也不起作用......我的
~/.zshrc
是空的:所有配置都是/etc/{zshenv, zprofile, zshrc}
中的全局配置。对我来说,唯一可行的办法就是
作为" shell 路径"。然后它的工作原理就像在konsole和其他终端模拟器中一样。
s5a0g9ez7#
要使用zsh修复sdkman,只需执行以下行:对我来说很好Ubuntu 19.04
brtdzjyr8#
尝试取消注解
~/.zshrc
中的第一个字符串:如果您来自bash,则可能需要更改$PATH。
它帮了我。