fish を導入する

ずっと zsh を利用してきましたが、カスタマイズのせいか微妙に起動が重くて気になっていたので、fish を導入してみました。

fish とは

friendly interactive shell の略で、インタラクティブ(対話的)重視のシェルです。
導入するだけで簡単に補完機能やシンタックスハイライトが使え、(個人的にはカスタマイズした zsh より)軽いです。
早速 MacBook Pro にインストールしてみます。

インストール

homebrew を使ってインストールします。

brew install fish

お試しで使ってみるにはこれだけで OK ですが、デフォルトシェルとして zsh から乗り換えますので以下のように設定します。
(Apple Silicon なので /opt/homebrew/bin/fish ですが、Intel の場合は恐らく /usr/local/bin/fish です)

echo '/opt/homebrew/bin/fish' | sudo tee -a /etc/shells
chsh -s /opt/homebrew/bin/fish

fish の設定

~/.config/fish/config.fish を以下のように設定し、brew コマンドが使えるようにします。
なお $HOME/bin は私が個人的に使っているものなので必ずしも必要ではありませんが、特筆すべきは PATH の登録が fish_add_path で簡単にできることです。
一番前に登録されますので PATH=$HOME/bin:$PATH のように機能し、重複しないようにもなっているようです。

if status is-interactive
    # Commands to run in interactive sessions can go here
    eval (/opt/homebrew/bin/brew shellenv)
    fish_add_path $HOME/bin
end

カスタマイズ

折角なので格好良くカスタマイズしましょう。
まずはパッケージマネージャの fisher をインストールします。

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

次にテーマをインストールします。
いろいろと調べてみて気に入ったので bobthefish にしました。

fisher install oh-my-fish/theme-bobthefish

とても簡単ですね!
他にもテーマがありますのでこちらから気に入ったものをインストールしてみて下さい。
最後にもう少しだけ設定を変更します。
~/.config/fish/conf.d/config.fish ファイルを作成してこちらに以下のように設定しました。

set -g theme_color_scheme nord 
set -g theme_date_format "+%Y-%m-%d(%a) %H:%M:%S"
set -g fish_prompt_pwd_dir_length 0
set -xg LC_ALL ja_JP.UTF-8
set -xg LANG ja_JP.UTF-8

theme_color_scheme はテーマカラー、theme_date_format は右側に出る日時の表示フォーマット、fish_prompt_pwd_dir_length はプロンプトのパスのディレクトリ名を省略しないように、下のふたつは他のサーバに mosh で接続するときに UTF-8 になっていなくてエラーになるので追加したものです。

Powerline 対応のフォントが必要

一部特殊な文字が使われているので Powerline 対応のフォントが必要です。
いろいろありますが、今回は Cica というフォントを導入してみました。
「ダウンロード」から zip をダウンロードしてきてインストールします。

まとめ

補完機能もシンタックスハイライトも優秀で、何より軽くなったのでうれしいですね。
またカスタマイズが簡単にできるのもいい感じです。

technical

Posted by yokky