web-dev-qa-db-ja.com

IntelliJ組み込み端末は魚の機能をロードしません

私はIntelliJの組み込み端末を fish Shell で使用していますが、これは1つの例外を除いてうまく機能します:~/.config/fish/functions/*で定義されたfish関数をロードしていないようです。

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の組み込み端末の3つすべてで同じです。

12
anothernode

IntelliJの埋め込み端末とiTerm2のecho $fish_function_pathから、[設定]、[設定]の順に移動して同じ結果を得ることができました。次に、ターミナルでシェル統合をオフにします。

私はphpStorm2017.3.4を使用していましたが、これはどのIntelliJ組み込み端末でも機能すると思います。

25
ook

誰かがこれに対する良い解決策を IntelliJバグトラッカー に投稿しました。

IntelliJには独自のconfig.fishがあり、.config/fish/config.fishはロードされますが、関数はロードされません。

IntelliJの内部config.fishに以下を追加すると、fish関数がIntelliJの組み込み端末に正常にロードされます。

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

IntelliJのconfig.fishの場所はさまざまですが、macOSでは次のようになります。

  • Ultimate Edition:/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のplugins/terminalにあるfishディレクトリ全体を、通常のfishconfigディレクトリへのシンボリックリンク(通常は.config/fish/)に置き換えることもできます。

さらに別のオプションがあります。たとえば、functionsディレクトリをリンクするだけです。

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

私にとっては bass を使用しているので、これも.pyそのディレクトリ内のファイル、私はこれを少し微調整する必要があります。

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

また、Ultimate Editionのパスが少し異なることがわかりました:/Applications/IntelliJ\ IDEA.app/Contents/plugins/terminal/fish/config.fish

2
LeOn - Han Li

intelliJオプションチェック。シェル統合をオフにします。

enter image description here

1
CookAtRice

IntelliJ2018.1とClion2018.1でも同じ問題が発生します。このスレッドの提案でClionを修正しようとしましたが、どういうわけかうまくいきませんでした(すべて問題がないように見えても、さらに多くのエラーメッセージが表示されました)。

したがって、私の回避策は、Ideaターミナルを/ bin/bash([設定]/[ツール]/[ターミナル]-[シェルパス])に設定し、ターミナルウィンドウの最初のコマンドとしてfish ..と入力すると、すべてが正常に機能し、ターミナルプラグインをいじる必要はありません。

(Jetbrainがそれを修正できない/修正したくないのは非常に残念です。そして/ IDEA-173259は「閉じられています」)

0
Nightingale7