我正在使用 zsh 和 prezto。启动提示速度极慢。我在 Mac 上使用 iTerm2。
这是我的~/.zshrc
#
# Executes commands at the start of an interactive session.
#
# Authors:
# Sorin Ionescu <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2f5c405d4641014640414a5c4c5a6f48424e4643014c4042" rel="noreferrer noopener nofollow">[email protected]</a>>
#
# Source Prezto.
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
fi
# Customize to your needs.
PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
export PATH
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"
autoload -U +X bashcompinit && bashcompinit
这是我的~/.zpreztorc
zstyle ':prezto:load' pmodule \
'environment' \
'terminal' \
'editor' \
'history' \
'directory' \
'spectrum' \
'utility' \
'ssh' \
'completion' \
'homebrew' \
'node' \
'osx' \
'git' \
'syntax-highlighting' \
'history-substring-search' \
'autosuggestions' \
'prompt'
我有预感模块的顺序会有所不同?此外,我还尝试删除一些模块,但这似乎也没有什么区别。
最佳答案
我遇到了类似的问题,解决问题的方法是:
将此行添加到我的 .zshrc
文件的最顶部:
zmodload zsh/zprof
其中包括位于文件开头的 zsh 分析模块 zprof
。
然后打开一个新的终端 session (以便进行更改并加载 zprof
)并执行
zprof
它向我提供了一份报告,说明我的系统大部分时间都花在了哪里。
在我的特定情况下,它正在执行与 nvm 相关的任务。我怀疑 OP 也有类似的问题,因为他们正在加载 node
模块。
由于这些天我很少使用 Node,所以我只是卸载了与 Node 相关的所有内容,包括 nvm,并且还删除了 .zshrc
上的所有与 Node 和 nvm 相关的行。
这对我来说是有效的,所以我注释掉了 .zshrc
中的 zmodload zsh/zprof
行。
在谷歌搜索时,那些实际上需要每天使用 Node 的人已经提出了其他解决方案。
例如这里:https://xcv58.me/if-your-zsh-starts-very-slow-cb1434ea16bd
此人创建了一个名为 zsh-lazy-load
( repo ) 的 zprezto 模块,可用于 defer loading nvm until it's needed .
免责声明:我自己没有尝试过zsh-lazy-load
,所以我不能完全推荐它;只是添加它以防它对任何人有用。
关于performance - zsh使用prezto启动提示极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54434933/