diff --git a/dot_oh-my-zsh/custom/tools/kubectl.zsh b/dot_oh-my-zsh/custom/tools/kubectl.zsh index c451e71..4895bfc 100644 --- a/dot_oh-my-zsh/custom/tools/kubectl.zsh +++ b/dot_oh-my-zsh/custom/tools/kubectl.zsh @@ -1,6 +1,18 @@ -# Kubectl configuration -# Auto-loaded by oh-my-zsh from $ZSH_CUSTOM/tools/ -# Note: Completions are handled by the kubectl plugin in .zshrc +# Lazy-load kubectl completions (saves ~100ms startup time) +if (( $+commands[kubectl] )); then + function kubectl() { + unfunction kubectl + source <(command kubectl completion zsh) + kubectl "$@" + } +fi -# Load golang path if exists -[[ -f /etc/profile.d/golang_path.sh ]] && source /etc/profile.d/golang_path.sh +# Aliases (available immediately) +alias k='kubectl' +alias kgp='kubectl get pods' +alias kgs='kubectl get svc' +alias kgn='kubectl get nodes' +alias kga='kubectl get all' +alias kd='kubectl describe' +alias kl='kubectl logs' +alias kx='kubectl exec -it' diff --git a/dot_zshrc b/dot_zshrc index bf66bf9..88aa1f9 100644 --- a/dot_zshrc +++ b/dot_zshrc @@ -1,3 +1,13 @@ +# ============================================================================ +# Fast compinit - cache completions, regenerate once daily +# ============================================================================ +autoload -Uz compinit +if [[ -n ${ZDOTDIR:-$HOME}/.zcompdump(#qN.mh+24) ]]; then + compinit +else + compinit -C +fi + # ~/.zshrc - Zsh configuration for interactive shells # Customizations are in ~/.oh-my-zsh/custom/*.zsh (auto-loaded) @@ -39,10 +49,13 @@ plugins=( git encode64 gitignore - kubectl z ) +# Skip compinit in oh-my-zsh (we handle it above) +export ZSH_DISABLE_COMPFIX=true +skip_global_compinit=1 + # ============================================================================ # Load Oh-My-Zsh # ============================================================================