IntelliJ的嵌入式终端不加载鱼函数

时间:2017-10-06 15:20:25

标签: intellij-idea fish

我正在使用带有fish shell的IntelliJ的嵌入式终端,它有一个例外:它似乎没有加载~/.config/fish/functions/*中定义的鱼函数。

当我使用macOS Terminal.app或iTerm2时,函数按预期加载,只有IntelliJ的嵌入式终端无法这样做。

奇怪的是,IntelliJ终端 加载~/.config/fish/config.fish就好了。

以下是iterm2和Terminal.app中的echo $fish_function_path输出:

/Users/moritz/.config/fish/functions
/usr/local/Cellar/fish/2.6.0/etc/fish/functions
/usr/local/share/fish/vendor_functions.d
/usr/local/Cellar/fish/2.6.0/share/fish/functions

这是在IntelliJ的嵌入式终端中运行相同的输出:

/Applications/IntelliJ IDEA.app/Contents/plugins/terminal/fish/functions
/usr/local/Cellar/fish/2.6.0/etc/fish/functions
/usr/local/share/fish/vendor_functions.d
/usr/local/Cellar/fish/2.6.0/share/fish/functions

我想这看起来像IntelliJ的嵌入式终端使用$fish_function_path的不同值初始化fish会话?

$HOME(= /Users/moritz)和$XDG_CONFIG_HOME(未设置)在iTerm2,Terminal.app和IntelliJ的嵌入式终端中都是相同的。

5 个答案:

答案 0 :(得分:19)

通过转到“设置”|“设置”,我可以在IntelliJ的嵌入式终端和iTerm2中从echo $fish_function_path获得相同的结果。然后终端关闭Shell集成。

我使用的是phpStorm 2017.3.4,但我认为这也适用于任何IntelliJ嵌入式终端。

答案 1 :(得分:8)

有人在IntelliJ bug tracker发布了一个很好的解决方案。

IntelliJ有自己的config.fish,其中加载了.config/fish/config.fish,但没有加载......

将以下内容添加到IntelliJ的内部config.fish中,并且可以在IntelliJ的嵌入式终端中正确加载鱼函数:

if test -d ~/.config/fish/functions
  for f in ~/.config/fish/functions/*.fish
    source $f
  end
end

IntelliJ config.fish的位置各不相同,可能是macOS

  • 终极版:/Applications/IntelliJ\ IDEA.app/Contents/plugins/terminal/fish/config.fish
  • 社区版:/Applications/IntelliJ\ IDEA\ CE.app/Contents/plugins/terminal/fish/config.fish
  • 甚至是这样的,如果通过Jetbrains Toolbox安装:~/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/172.4574.11/IntelliJ IDEA.app/Contents/plugins/terminal/fish

您也可以使用符号链接将IntelliJ' fish中的整个plugins/terminal目录替换为普通的fish配置目录,通常为.config/fish/

还有另一种选择:您只需链接functions目录,例如:

ln -s ~/.config/fish/functions \
  /Applications/IntelliJ\ IDEA.app/Contents/plugins/terminal/fish/config.fish

答案 2 :(得分:2)

对我而言,因为我使用bass并在该目录中放置了一些<script src="https://code.jquery.com/jquery-1.10.2.min.js" integrity="sha256-C6CB9UYIS9UJeqinPHWTHVqh/E1uhG5Twh+Y5qFQmYg=" crossorigin="anonymous"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script> <link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" /> <div id="SampleDiv"></div>文件,所以我必须稍微调整一下。

.py

此外,我发现终极版的路径有点不同: if test -d ~/.config/fish/functions for f in ~/.config/fish/functions/*.fish source $f end end

答案 3 :(得分:1)

intelliJ选项检查。关闭外壳程序集成。

enter image description here

答案 4 :(得分:0)

我仍然在IntelliJ 2018.1和Clion 2018.1中遇到同样的问题。我尝试通过这个帖子中的建议来修复Clion,但是有些它没有用(即使一切似乎都没问题,我得到了更多的错误信息)。

所以我的解决方法是将Idea终端设置为/ bin / bash(在设置/工具/终端 - Shell路径中),然后作为终端窗口中的第一个命令输入fish ..一切正常,没有摆弄终端插件需要。

(我觉得很可惜,Jetbrain不能解决它...而且/ IDEA-173259已经关闭&#34;)