IntelliJ's embedded terminal does not load fish functions
I was able to get the same result from echo $fish_function_path
in IntelliJ's embeded terminal and iTerm2 by going to Settings | Terminal then turning off Shell integration.
I was using phpStorm 2017.3.4 but I assume this will also work in any IntelliJ embedded terminal.
intelliJ option check. turn off shell integration.
Someone posted a good solution for this in the IntelliJ bug tracker.
IntelliJ has its own config.fish
, where .config/fish/config.fish
does get loaded, but not the functions...
Add the following to IntelliJ's internal config.fish
and the fish functions get loaded fine in IntelliJ's embedded terminal:
if test -d ~/.config/fish/functions
for f in ~/.config/fish/functions/*.fish
source $f
end
end
The location of IntelliJ's config.fish
varies, on macOS it could be
- Ultimate Edition:
/Applications/IntelliJ\ IDEA.app/Contents/plugins/terminal/fish/config.fish
- Community Edition:
/Applications/IntelliJ\ IDEA\ CE.app/Contents/plugins/terminal/fish/config.fish
- Or even something like this, if installed via Jetbrains Toolbox:
~/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/172.4574.11/IntelliJ IDEA.app/Contents/plugins/terminal/fish
You could also just replace that whole fish
directory in IntelliJ's plugins/terminal
with a symlink to your normal fish config directory, usually .config/fish/
.
There's still another option: you can just link the functions
directory, for example:
ln -s ~/.config/fish/functions \
/Applications/IntelliJ\ IDEA.app/Contents/plugins/terminal/fish/config.fish