🦔

fishの"set -U"は環境変数に入らないよという話

2021/02/25に公開1

結論

set -Uは永続化されるだけ。
set -Uxを使おう。

set -Uでfish用の変数を永続化して、-xがつくことで、環境変数にexportされるみたい

# 例: 標準のエディタ設定
set -Ux EDITOR=nano

$PATHの場合

set -Ufish_user_pathsを変更するのがベストプラクティスっぽい

# 例:~/binを$PATHに追加する場合
set -U fish_user_paths ~/bin $fish_user_paths

環境変数の調べ方

  1. printenvコマンドの実行結果内にあるかチェック
  2. ~/.config/fish/fish_variablesを見て、SETUVAR --exportになっているか見る

気づいたきっかけ

$EDITOR変数を設定したはずが、動いたり動かなかったりして、調査したのがきっかけ
とりあえずRangerコマンドが動かなかった
それで、上記の環境変数の調べ方を見たら、$EDITOR変数がおかしかった。
ちゃんと設定したら、Rangerコマンドでも正常に機能するようになった

Discussion

subasuba

追記

PATHについて

今はfish_add_path関数を使ったほうが楽ですよ