Fish Shellが遅いので調査してみた

Macで愛用しているFish Shellですが、コマンドを打ってからのレスポンスがあまりにも遅いので、調査してみました。

調査方法については、以下のサイトを参考にしました。

qiita.com

同様の調査を行ったところ、飛び抜けて処理に時間がかかっている箇所を確認しました。

./profile.txt

Time    Sum Command
  ...
3045028 3045028 ---> command svn ls . >/dev/null 2>&1
78             579         -> prompt_finish
41              444        --> if [ -n $current_bg ]
    set_color -b normal
    set_color $current_bg
    echo -n "$segment_separator "
  ...

どうやら、svnコマンドの実行で処理に時間がかかっているようです。

私のMacではSubversionをインストールしていません。これ以上調査する時間も無いため、とりあえず応急処置としてsvnコマンドを実行するセンテンスをコメントアウトしておきました。

~/.config/fish/functions/fish_prompt.fish

# ===========================
# Apply theme
# ===========================

function fish_prompt
  set -g RETVAL $status
  prompt_status
  prompt_virtual_env
  prompt_user
  prompt_dir
  type -q hg;  and prompt_hg
  type -q git; and prompt_git
#  type -q svn; and prompt_svn
  prompt_finish
end

上記の対応により、コマンドを実行した際のレスポンス時間が劇的に改善しました。