【发布时间】:2018-03-18 10:53:45
【问题描述】:
我正在使用 IntelliJ 的嵌入式终端和 fish shell,它运行良好,但有一个例外:它似乎没有加载 ~/.config/fish/functions/* 中定义的鱼函数。
当我使用 macOS Terminal.app 或 iTerm2 时,函数按预期加载,只有 IntelliJ 的嵌入式终端无法加载。
奇怪的是,IntelliJ 终端确实加载 ~/.config/fish/config.fish 就好了。
这是echo $fish_function_path 在 iterm2 和 Terminal.app 中的输出:
/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 的嵌入式终端这三者中都是相同的。
【问题讨论】:
-
请关注此问题:youtrack.jetbrains.com/issue/IDEA-173259 以获取更新。
-
信息不足且相互矛盾 :-) 如果 fish 能够找到 config.fish,那么从您的个人函数目录中自动加载函数应该没有困难。在 IntelliJ 中运行 fish 时,$HOME 和 $XDG_CONFIG_HOME 设置为什么?假设前者已设置但未设置后者“ls -ld $HOME/.config/fish/functions”输出什么? $fish_function_path 设置为什么?如果你创建一个简单的自动加载函数,在 $HOME.config/fish/functions/ij.fish 中说“function ij; echo ij ran; end”,你可以通过输入“ij”来运行该函数吗?
-
echo $fish_function_path显示什么? IntellJ 的终端和 Terminal.app 下的输出有区别吗? -
嗨,Kurtis Rader,我可以在 iTerm2 和 Terminal.app 中运行该功能,但不能在 IntelliJ 的嵌入式终端中运行。不过,我在
config.fish中定义的别名即使在 IntelliJ 的嵌入式终端中也可以使用。对不起,如果这是矛盾的,但事实就是这样;-)
标签: intellij-idea fish