Fish shell 很慢,在 MacOS 10.15.6 上每个命令大约需要 1 秒
Fish shell is slow, taking ~1sec every command on MacOS 10.15.6
更新 XCode 到 11.6 后,鱼 shell 变得非常慢。执行每个命令需要 ~1 秒。常规 bash
没问题。
我 运行 MacOS 10.15.6
和 fish, version 3.0.2
XCode 已从 11.3 升级到 11.6
例如:
~> __fish_vcs_prompt
~> echo $CMD_DURATION
874
快一秒了!
原来是XCode11.6不再提供subversion引起的。
将 fish 升级到版本 3.1.2 可以解决该问题。因为 svn 在该版本中默认被禁用。 brew upgrade fish
(感谢@faho 的建议)。
或者安装svn:
运行 下面修复了问题:
~> brew install svn
~> __fish_vcs_prompt
~> echo $CMD_DURATION
32
我是怎么发现问题的
运行一条鱼的侧面提供了线索:
~> fish --profile /tmp/profile -c fish_prompt; sort -nk2 /tmp/profile
...
181 12870 ---> __fish_git_prompt
1460594 1460594 -----> command svn info 2>/dev/null.
81 1460675 ----> set -l checkout_info (command svn info 2>/dev/null)
124 1462808 ---> __fish_svn_prompt
170 1478777 --> __fish_vcs_prompt
241 1481313 -> echo -n -s (set_color $fish_color_user) "$USER" $normal @ (set_color $fish_color_host) (prompt_hostname) $normal ' ' (set_color $color_cwd) (prompt_pwd) $normal (__fish_vcs_prompt) $normal $prompt_status $suffix " "
120 1482542 > fish_prompt
1460594 1460594 -----> command svn info 2>/dev/null.
是减速开始的行。
和运行:
~> command svn info
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.
显示 XCode 不再提供 svn
因此,通过自制软件安装 svn 解决了这个问题:brew install svn
更新 XCode 到 11.6 后,鱼 shell 变得非常慢。执行每个命令需要 ~1 秒。常规 bash
没问题。
我 运行 MacOS 10.15.6
和 fish, version 3.0.2
XCode 已从 11.3 升级到 11.6
例如:
~> __fish_vcs_prompt
~> echo $CMD_DURATION
874
快一秒了!
原来是XCode11.6不再提供subversion引起的。
将 fish 升级到版本 3.1.2 可以解决该问题。因为 svn 在该版本中默认被禁用。 brew upgrade fish
(感谢@faho 的建议)。
或者安装svn:
运行 下面修复了问题:
~> brew install svn
~> __fish_vcs_prompt
~> echo $CMD_DURATION
32
我是怎么发现问题的
运行一条鱼的侧面提供了线索:
~> fish --profile /tmp/profile -c fish_prompt; sort -nk2 /tmp/profile
...
181 12870 ---> __fish_git_prompt
1460594 1460594 -----> command svn info 2>/dev/null.
81 1460675 ----> set -l checkout_info (command svn info 2>/dev/null)
124 1462808 ---> __fish_svn_prompt
170 1478777 --> __fish_vcs_prompt
241 1481313 -> echo -n -s (set_color $fish_color_user) "$USER" $normal @ (set_color $fish_color_host) (prompt_hostname) $normal ' ' (set_color $color_cwd) (prompt_pwd) $normal (__fish_vcs_prompt) $normal $prompt_status $suffix " "
120 1482542 > fish_prompt
1460594 1460594 -----> command svn info 2>/dev/null.
是减速开始的行。
和运行:
~> command svn info
svn: error: Failed to locate 'svn'.
svn: error: The subversion command line tools are no longer provided by Xcode.
显示 XCode 不再提供 svn
因此,通过自制软件安装 svn 解决了这个问题:brew install svn