diff --git a/brethil_dotfile.sh b/brethil_dotfile.sh index 6cb1c1f..12c3bf5 100755 --- a/brethil_dotfile.sh +++ b/brethil_dotfile.sh @@ -7,7 +7,11 @@ export ZSH_THEME="brethil" export DISABLE_UNTRACKED_FILES_DIRTY=true export VIRTUAL_ENV_DISABLE_PROMPT=true -# Source all other plugins + +_ZSH_CACHE="${HOME}/.cache/zsh" +if [[ ! -d "${HOME}/.cache/zsh" ]]; then mkdir "${HOME}/.cache/zsh"; fi + +# Source all zsh plugins source <(antibody init) antibody bundle < "$DOTFILES/antibody_plugins.txt" export ZSH="$(antibody path robbyrussell/oh-my-zsh)" @@ -55,9 +59,14 @@ if [[ $SSH_CLIENT ]]; then export SSH_AUTH_SOCK=$HOME/.ssh/ssh_auth_sock fi -# pip completions -if which pip &>/dev/null ; then - eval "$(pip completion --zsh)" +# pip completion. Cache output since pip takes 0.4s to run +if [[ ${commands[pip]} ]]; then + pip_cache_file="${_ZSH_CACHE}/pip_completion_cache.zsh" + if [[ "${commands[pip]}" -nt "${pip_cache_file}" || ! -s "$pip_cache_file" ]]; then + pip completion --zsh | sed -e "s|compctl -K [-_[:alnum:]]* pip|& pip2 pip3|" >! "$pip_cache_file" 2> /dev/null + fi + source "${pip_cache_file}" + unset pip_cache_file fi alias esource='$EDITOR $HOME/.zshrc'