bash から fish shell に移行

Shell

macOS Catalina で、標準のシェルが bash から zsh に変わった。
そのついでで、fish shellに移行したので書き残す。

環境

  • macOS Mojave -> Catalina 10.15.4 にした

導入

fishを入れる。

shell

brew install fish

ついでに fish のパッケージマネージャー fisherもいれる。
https://github.com/jorgebucaran/fisher

shell

curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

移行

環境変数、 alias, function

.config/fish/config.fish を作成し、そこに移植する。

fish は export を set -x 形式で指定する。
以下のような環境変数があるとして…。

$HOME/.bash_profile

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export FOO=bar

fish ではこうなる。

$HOME/.config/fish/config.fish

set -x ANDROID_HOME $HOME/Library/Android/sdk
set -x PATH $PATH $ANDROID_HOME/emulator
set -x FOO bar

alias はそのままでいけた。

rbenv

eval するやつは使えないので以下

$HOME/.config/fish/config.fish

status --is-interactive; and source (rbenv init -|psub)

nvm

もともと fish をサポートしていないので、とりあえず fish-nvm を入れた。

shell

fisher add jorgebucaran/fish-nvm
nvm use lts
node -v > .nvmrc

デフォルトシェル

デフォルトシェルは、Catalina 標準の zsh のままにしておく。
.zshrcをいじって…。

$HOME/.zshrc

exec fish

chsh で zsh をデフォルトにした。

shell

chsh -s /bin/zsh

VSCode でも、既定ターミナルを zsh を変更すれば fish が起動する。

カスタマイズ

テーマ

Oh My Fish(OMF) にあるテーマがインストールできる。
fisher の場合はインストール方法が異なる。
例えば bobthefish テーマをインストールする場合、OMF だと

shell

omf install bobthefish

fisher の場合は oh-my-fish/theme-テーマ名 の形式で指定する。

shell

fisher add oh-my-fish/theme-bobthefish

Color Scheme, Prompt

fish_config を入力。

shell

fish_config

設定画面が立ち上がるので設定。

プラグイン

Awesome fish

ls の色

ls の結果が真っ青なのでつらい。
ls の結果に色をつける - ねもぷらす を参考に

$HOME/.config/fish/config.fish

set -x LSCOLORS gxfxcxdxbxegedabagacad

で色を変更する。

fish のロゴ

fish_logo をインストールする。

shell

fisher add laughedelic/fish_logo
fish_logo f00 '' ff0

アスキーアートでできたfishのロゴ