zsh使用prezto启动提示非常慢

时间:2019-01-30 07:00:52

标签: performance zsh zshrc prezto

我在prezto中使用zsh。启动提示非常慢。我在Mac上使用iTerm2。

enter image description here

这是我的~/.zshrc

#
# Executes commands at the start of an interactive session.
#
# Authors:
#   Sorin Ionescu <sorin.ionescu@gmail.com>
#

# 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'

我预感模块的顺序会有所不同?此外,我也尝试过删除一些模块,但这似乎也没什么用。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,而解决问题的方法是:

将此行添加到我的.zshrc文件的顶部:

zmodload zsh/zprof

在文件开头包含zsh分析模块zprof

然后打开一个新的终端会话(以便进行更改并加载zprof)并执行

zprof

它向我报告了我的系统大部分时间在哪里度过的。

在我的特定情况下,它正在执行与nvm相关的任务。我怀疑OP遇到了类似的问题,因为它们正在加载node模块。

由于这几天我很少使用节点,所以我刚刚卸载了所有与节点相关的内容,包括nvm,并且还删除了.zshrc上所有与节点和nvm相关的行。

这是为我做的,所以我从zmodload zsh/zprof的{​​{1}}行中注释掉了。

针对这个确实需要每天使用Node的人们进行谷歌搜索时,他们提出了其他解决方案。

例如此处:https://xcv58.me/if-your-zsh-starts-very-slow-cb1434ea16bd

此人创建了一个名为.zshrcrepo)的zprezto模块,该模块可用于defer loading nvm until it's needed

免责声明:我自己没有尝试过zsh-lazy-load,所以我不能完全推荐它。只是添加了它以防对任何人有用。