fish shell に function path を追加する正しい方法

備忘録として。

fish_function_path にパスを追加するには、以下のようにする必要がある。

set -a fish_function_path "<path_to_add_functions>"

しかし、以下の書き方でもターミナル起動時のログインシェルでは正しく動いてしまう。

set -gx fish_function_path $fish_function_path "<path_to_add_functions>"

set -gx で追加した場合にどういった問題が発生するかというと、fish shell から fish -l -c "any commands" を実行した時にパスが壊れてしまい、追加したパスを含めた以外全ての functions が呼べなくなってしまう。

ドキュメントにも記載されているが、$fish_function_path というのは list variables なので、gx で追加をするとリストがくっついた文字列に変化してしまう。

参考


この記事をシェアする
Built with Hugo
テーマ StackJimmy によって設計されています。