fish shellのパスの設定

fishシェルが大好きです。 ハイライトや入力履歴がでるのでかなり便利です。

しかしデファクトスタンダードはbashであり、Macならzshがデフォルトになっていたりとまだまだfishシェルのパス情報を記事に載せてくれるサイトは少ないです。
fishシェルのパスを正しく書くための設定です。

パスを追加

例えばnodebrewを用いて行います。

$ vim ~/.config/fish/config.fish
set -x PATH $HOME/.nodebrew current/bin $PATH
$source ~/.config/fish/config.fish #反映

反映されたかどうか確認

$ which nodebrew
/usr/local/bin/nodebrew

fish_user_pathsを書くとどうなるの?

fish_user_pathsをconfig.fishにかけと書いてある記事がたまにあります。
しかしこれは推奨されていないので、やめましょう。
https://fishshell.com/docs/current/tutorial.html#path

これをやるとセッションが起動されるたびに$fish_user_pathsに追加されパスが長くなっていまいます。
その場合は設定ファイルから削除するだけではもとに戻らず、パスを削除するコマンドを書く必要があります。

pathの削除

config.fishで管理するので、これまでのやつをすべて消したいと思います。
しかしすべてパスを消すというコマンドが見つからなかったので、1個目から100個目までを消すコマンドにします。(場合によっては100以上登録されているかも??)

$ set -e fish_user_paths[100..-1]

参考

fish_user_paths を config.fish で設定するな