Fishを導入してみる。
こんにちは!k-junです。
今回は手元のmacの環境をzshからfishに移行したので、書き置きもかねて手順を書いてみようと思います。
Fishとは?
https://fishshell.com/docs/current/
Friendly Interactive Shellからfishと呼ばれているようです。zsh, bashしか比較対象がありませんが
確かにこれらのshellと比べても圧倒的に親切でした。fish_config
打ったときなんかただただ感動しました。
他にも特徴として、syntax highlighting, autosuggestions, tab completionなどが挙げられており、 実際に使ってみると言葉以上の親切さを実感します。 他にもグローバル変数として変数が定義できたり、カラーリングがGUIで設定できたりと、ただただ親切でした。 たまに会いに行ったときの祖父母並みです。
Install
公式ページにOSごとの詳細が載っています。 macなので大人しく、brewでインストールします。
brew install fish
defaultのshellとして設定。
echo /usr/local/bin/fish | sudo tee -a /etc/shells chsh -s /usr/local/bin/fish
Check
terminalを起動すると、defaultでfishが起動するようになりました。 hostnameが邪魔なので表示しないように設定します。 ついでに色もいい感じのものに変更。
fish_config
Migrate
あとはPathの設定などをzshから引っ張ってきます。fishは初期読み込みとして~/.config/fish/config.fish
を見に行くので
ここに設定を書いていきます。
alias python='python3' alias pip='pip3' alias t='tmux' set PATH /usr/local:$PATH # Golang setting set GOVERS 1.12.7 set GOROOT $HOME/.go_versions/$GOVERS/go/ set GOPATH $HOME/.go/ set PATH $GOROOT/bin:$PATH set PATH $GOPATH/bin:$PATH set GO111MODULE auto # rbenv set PATH "$HOME/.rbenv/bin:$PATH" eval (rbenv init - | source) set PATH "google-cloud-sdk/bin:$PATH" set PATH $HOME/drivers/:$PATH set PATH $HOME/flutter/bin:$PATH # nodenv set PATH "$HOME/.nodenv/bin:$PATH" eval (nodenv init - | source) # cargo set PATH "$HOME/.cargo/bin:$PATH" # aws terraform set PATH "$HOME/aws/:$PATH" # rust config env set RUST_BACKTRACE 1 # google-cloud-sdk set PATH $HOME/google-cloud-sdk/bin/:$PATH set PATH /usr/local/bin:$PATH # minikube set PATH /minikube/:$PATH # direnv eval (direnv hook fish | source)
おしまい!zshと比べて補完機能がかなり優秀だったりと、今のところかなり満足して使ってます。 MacOS 10.15からzshがdefaultになりましたが、個人的には全然fishの方が優秀ですね... まあおそらくzshの真の力を知らないだけ...