所以我想摆脱 oh-my-zsh,因为它使我的 shell 启动明显滞后(>0.1s)。实际上,在删除 oh-my-zsh 后,启动时间变为 0.02 秒,但现在我开始手动重新添加功能。首先,不区分大小写的选项卡完成。出于这个原因,我添加了类似的东西
autoload -U compinit
compinit
zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]}'
到我的 .zshrc。但是,仅此一项小功能就将我的启动时间增加了近三倍,而其他功能(如语法突出显示或自动建议)似乎根本不会影响启动时间。
在 bash 中,我可以通过bind 'set completion-ignore-case on'
不降低任何性能(启动时间 ~ 0.01s)简单地获得所需的不区分大小写的完成
。
我不知道 compinit 是做什么的,但是有没有办法在不显着减慢启动速度的情况下在 zsh 中获得不区分大小写的完成?
您可以在 .zlogin 而不是 .zshrc 上添加“compinit”引用,在我的例子中,加载时间缩短了很多。我还有一个测试,每天只重新编译一次compinit。
autoload -Uz zrecompile
autoload -Uz compinit
dump=$ZSH_COMPDUMP
# http://zsh.sourceforge.net/Doc/Release/Conditional-Expressions.html
if [[ -s $dump(#qN.mh+24) && (! -s "$dump.zwc" || "$dump" -nt "$dump.zwc") ]]; then
compinit -i d $ZSH_COMPDUMP
zrecompile $ZSH_COMPDUMP
fi
compinit -C
Run Code Online (Sandbox Code Playgroud)
在我的 .zshenv 上,我有这个以避免加载全局配置:
unsetopt GLOBAL_RCS
skip_global_compinit=1
setopt noglobalrcs
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1167 次 |
最近记录: |