fishはPOSIX非互換シェルのため、rbenv などがうまく動かなかったり、Bashスクリプトによる初期化がうまく引き継げないなどの問題がおきることがあります。 環境によりますが、PATH他の環境をfishに移行するのも面倒なので、とりあえずArch Linuxの方法を採用しておけば楽でよさそうです。
一方Mac OS環境ではEmacsをGUI起動するにあたって、exec-path-from-shell
という素晴らしいパッケージを利用していることがあります。
Make Emacs use the $PATH set up by the user's shell - GitHub - purcell/exec-path-from-shell: Make Emacs use the $PATH set up by the user's shell
そのため、SHELLはBashだけどfishが実行されちゃって、以下のようなEmacs起動時に以下のようなエラーをしてしまうことがあります。
|
|
とりあえず、Emacsの初期化処理としては環境変数を引き継ぎたいだけで、シェル実行をしたいわけではないので以下のような適当な方法で回避します。
|
|
.bash_profile
他が実行される前に、Emacs環境でEMACS="yes"
という環境変数をセットしておいて、.bash_profile
側でその場合にexec fish
しないようにします。
|
|
これでターミナルはfishになるけど、Emacsはfishを呼ばずにエラー回避できました。