我在prezto中使用zsh。启动提示非常慢。我在Mac上使用iTerm2。
这是我的~/.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'
我预感模块的顺序会有所不同?此外,我也尝试过删除一些模块,但这似乎也没什么用。
答案 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
此人创建了一个名为.zshrc
(repo)的zprezto模块,该模块可用于defer loading nvm until it's needed。
免责声明:我自己没有尝试过zsh-lazy-load
,所以我不能完全推荐它。只是添加了它以防对任何人有用。