自分はメインのターミナル環境をfishにしている。

特に設定を細かくしなくてもサクサク動いてくれるので非常に助かっているが、POSIX準拠ではないためデフォルトシェルにするのは避けて、以下のような形で利用している。

  1. デフォルトシェルはzsh
  2. tmuxを自動起動
  3. tmuxのデフォルトシェルとしてfish

そのため、環境変数の設定は全てzshenvでしているが、fishを起動したときにzshenvで設定した環境変数の順番を維持してくれないという問題があった。

普通にfishを起動するだけだと発生する問題のようだったので、以下のようにtmuxでfishを起動する際にzshのパスをそのままの順番でfishのパスに設定する変更することで対応した。

set -g default-command /usr/local/bin/fish --init-command="set PATH 'string split : $PATH')"

上記のやり方は直接的な解決方法ではないが、PATHの順序に関するissueは挙がっているので、そのうち直るかもしれない。(深く追う時間が確保できない……)

https://github.com/fish-shell/fish-shell/issues/5456