Compare commits

..
2 Commits
Author SHA1 Message Date
Yuhao Qing 1ba7380ac5 perf(completion): let Oh My Zsh own initialization
A single completion setup avoids duplicate initialization. Homebrew already exports its prefix during environment setup, so resolving it again adds an unnecessary subprocess.
2026-09-08 00:41:09 +08:00
Yuhao Qing d5afd25bbe perf(pyenv): initialize shell integration once without rehash
Login shells source the fragment twice to restore shim precedence after the system profile. Reapplying PATH does not require repeating shell integration or rebuilding shims.
2026-09-08 00:41:08 +08:00
3 changed files with 26 additions and 7 deletions
+2 -5
View File
@@ -40,13 +40,10 @@ plugins=(
fpath+=$ZSH/custom/plugins/zsh-completions/src
if [[ "$OSTYPE" == "darwin"* ]] && command -v brew &> /dev/null; then
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
if [[ "$OSTYPE" == "darwin"* && -n "$HOMEBREW_PREFIX" ]]; then
fpath=("$HOMEBREW_PREFIX/share/zsh/site-functions" ${fpath:#$HOMEBREW_PREFIX/share/zsh/site-functions})
fi
mkdir -p ~/.cache/zsh
autoload -U compinit && compinit -C -d ~/.cache/zsh/.zcompdump
SAVEHIST=50000
cheat() {
+20
View File
@@ -214,6 +214,26 @@ HOME="$pyenv_env_home" XDG_CONFIG_HOME="$pyenv_env_xdg" \
zsh -lc '[[ "$(command -v python3)" == "$HOME/.pyenv/shims/python3" ]]' ||
fail "pyenv Python is not restored in login zsh after the system profile"
# Interactive initialization runs once while repeated sourcing restores PATH.
mkdir -p "$pyenv_env_home/.pyenv/bin"
cat >"$pyenv_env_home/.pyenv/bin/pyenv" <<'PYENV'
#!/bin/sh
printf '%s\n' "$*" >> "$PYENV_ROOT/init-calls"
printf '%s\n' 'pyenv() { command pyenv "$@"; }'
PYENV
chmod +x "$pyenv_env_home/.pyenv/bin/pyenv"
HOME="$pyenv_env_home" PYENV_ROOT="$pyenv_env_home/.pyenv" PATH=/usr/bin:/bin \
zsh -dfic '
source "$1"
(( $+functions[pyenv] )) || exit 1
path=(/usr/bin /bin)
source "$1"
[[ $(command -v python3) == "$PYENV_ROOT/shims/python3" ]]
' zsh "$ROOT/zsh/pyenv.zsh" ||
fail "interactive pyenv initialization did not preserve its function and Python PATH"
printf '%s\n' 'init - --no-rehash zsh' | cmp -s - "$pyenv_env_home/.pyenv/init-calls" ||
fail "pyenv initialization must run once without a startup rehash"
# A later easyzsh migration must not move the login hook before the system profile.
HOME="$pyenv_env_home" bash "$ROOT/deploy.sh" --home "$pyenv_env_home" --migrate-zprofile >/dev/null
grep -Fqx "$pyenv_login_hook" "$pyenv_env_home/.zprofile" ||
+4 -2
View File
@@ -3,6 +3,8 @@ export PYENV_ROOT="${PYENV_ROOT:-$HOME/.pyenv}"
[[ -d "$PYENV_ROOT/bin" ]] && path=("$PYENV_ROOT/bin" ${path:#$PYENV_ROOT/bin})
[[ -d "$PYENV_ROOT/shims" ]] && path=("$PYENV_ROOT/shims" ${path:#$PYENV_ROOT/shims})
export PATH
if [[ -o interactive ]] && command -v pyenv &> /dev/null; then
eval "$(pyenv init - zsh)"
# Login profiles can reapply PATH without repeating shell integration.
# Run `pyenv rehash` after installing entry points through `python -m pip`.
if [[ -o interactive ]] && (( ! $+functions[pyenv] )) && command -v pyenv &> /dev/null; then
eval "$(pyenv init - --no-rehash zsh)"
fi