しばらく zsh 使ってたんだけど設定ファイルが煩雑になってて気分が良くないから全部書きなおそうと思ってたところ fish というシェルがあることを知った。どうせ zsh 空にするんだったら違うやつに乗り換えるのもよさそうだと思ったので使い始めた。以下は 15 分くらい触った感想。

Install

$ brew install fish

help って打つとブラウザでドキュメントが開くし、fish_config って打つとブラウザで設定画面が出る。今まで文字列だけヴァーって出て見づらい感じだったヘルプ画面が HTML で出されるのは優しさを感じる。設定はもちろんファイルに書ける。

Prompt

function fish_prompt --description 'Write out the prompt'

  set -l last_status $status

  if not set -q __fish_prompt_normal
    set -g __fish_prompt_normal (set_color normal)
  end

  # FISH
  echo -n 'emoji  '

  # PWD
  set_color $fish_color_cwd
  echo -n (prompt_pwd)
  set_color normal

  printf '%s ' (__fish_git_prompt)

  # DOLLAR
  if not test $last_status -eq 0
    set_color $fish_color_error
  else
    set_color yellow
  end
  echo -n '$ '
  set_color normal

end

上記の設定書いておけば下記になる。source で再読み込みしなくても設定反映されて良い。.zshrc に書いてたプロンプトは人間が読むには厳しい状態だったけど、fish は人にも優しい。

プロンプト
プロンプト

補完のギラギラ感が賛否両論だけど、僕的には好きな感じです