【问题标题】:Fish shell is slow, taking ~1sec every command on MacOS 10.15.6Fish shell 很慢,在 MacOS 10.15.6 上的每个命令大约需要 1 秒
【发布时间】:2020-09-02 05:45:19
【问题描述】:

在将 XCode 更新到 11.6 后,鱼壳变得难以忍受。花费 ~1 秒来执行每个命令。普通的bash 很好。

我正在运行 MacOS 10.15.6fish, version 3.0.2

XCode 从 11.3 升级到 11.6

例如:

~> __fish_vcs_prompt 
~> echo $CMD_DURATION
874

差不多一秒钟!

【问题讨论】:

    标签: xcode macos fish


    【解决方案1】:

    原来问题是由 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

    因此,通过 homebrew 安装 svn 解决了问题:brew install svn

    【讨论】:

    • 或者你可以升级到fish 3.1.2,这里默认禁用svn提示。这里的问题是 xcode 仍然为 subversion 工具提供 shims,因此无法检测到。
    • @faho 卸载了 svn 并升级了 fish。它解决了这个问题。我会更新答案。谢谢!
    猜你喜欢
    • 2021-01-31
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2017-01-22
    • 2015-03-31
    • 1970-01-01
    • 2020-12-29
    相关资源
    最近更新 更多