mirror of
				https://github.com/dcarrillo/prezto.git
				synced 2025-11-04 07:29:09 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			865cc2ef02
			...
			pull/517-a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					e3696d2c28 | 
@@ -61,6 +61,29 @@ system site-packages directory.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
 | 
					    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Lazy loading
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					By default, virtualenvwrapper is loaded in lazy mode. This behaviour can be disabled adding the following line to *~/.zpreztorc*:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    zstyle ':prezto:module:python' lazy_venv 'no'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Automatic virtualenv initialization
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To enable autoenv, add the following line to *~/.zpreztorc*:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    zstyle ':prezto:module:python' autoenv 'yes'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If a virtualenv is active, and was not activated by autoenv, then autoenv does nothing.
 | 
				
			||||||
 | 
					Otherwise, autoenv activated or deactivates a virtual environment whenever a directory is changed; based on the following priority:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    1. Name specified in a file named *.venv* in the cwd.
 | 
				
			||||||
 | 
					    2. *.venv* file in git root. If folder is inside git repository.
 | 
				
			||||||
 | 
					    3. Name of git root folder.
 | 
				
			||||||
 | 
					    4. No virtualenv.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Aliases
 | 
					Aliases
 | 
				
			||||||
-------
 | 
					-------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,17 +31,66 @@ if (( ! $+commands[python] && ! $+commands[pyenv] )); then
 | 
				
			|||||||
  return 1
 | 
					  return 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local venv_script=virtualenvwrapper
 | 
				
			||||||
 | 
					if zstyle -T ':prezto:module:python' lazy_venv; then
 | 
				
			||||||
 | 
					    venv_script+=_lazy
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Load virtualenvwrapper into the shell session.
 | 
					# Load virtualenvwrapper into the shell session.
 | 
				
			||||||
if (( $+commands[virtualenvwrapper_lazy.sh] )); then
 | 
					if (( $+commands[$venv_script.sh] )); then
 | 
				
			||||||
  # Set the directory where virtual environments are stored.
 | 
					  # Set the directory where virtual environments are stored.
 | 
				
			||||||
  export WORKON_HOME="$HOME/.virtualenvs"
 | 
					  export WORKON_HOME="$HOME/.virtualenvs"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Disable the virtualenv prompt.
 | 
					  # Disable the virtualenv prompt.
 | 
				
			||||||
  VIRTUAL_ENV_DISABLE_PROMPT=1
 | 
					  VIRTUAL_ENV_DISABLE_PROMPT=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  source "$commands[virtualenvwrapper_lazy.sh]"
 | 
					  source "$commands[$venv_script.sh]"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function autoenv {
 | 
				
			||||||
 | 
					  #Don't run in shell scripts etc.
 | 
				
			||||||
 | 
					  if [[ $ZSH_SUBSHELL -ne 0 ]]; then
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #Don't run if currently in virtual env not set by autoenv
 | 
				
			||||||
 | 
					  if (( ($+VIRTUAL_ENV)  && !($+AUTOENV) )); then
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  local name=""
 | 
				
			||||||
 | 
					  if [[ -f .venv ]]; then
 | 
				
			||||||
 | 
					    #.venv file in current dir gets highest priority
 | 
				
			||||||
 | 
					    name=$(<.venv)
 | 
				
			||||||
 | 
					  elif is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
				
			||||||
 | 
					    local gitroot="$(git rev-parse --show-toplevel 2> /dev/null)"
 | 
				
			||||||
 | 
					    if [ -f "$gitroot/.venv" ]; then
 | 
				
			||||||
 | 
					      #If there is a .venv file in gitroot
 | 
				
			||||||
 | 
					      name=$(<$gitroot/.venv)
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      #Else use the name of the folder as venv name
 | 
				
			||||||
 | 
					      name=$gitroot:t
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  local venv_name="$VIRTUAL_ENV:t"
 | 
				
			||||||
 | 
					  if [[ $name != $venv_name ]]; then
 | 
				
			||||||
 | 
					    if [[ -z $name ]]; then
 | 
				
			||||||
 | 
					      deactivate && unset AUTOENV
 | 
				
			||||||
 | 
					      return
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [[ -d "$WORKON_HOME/$name" ]]; then
 | 
				
			||||||
 | 
					      workon $name && export AUTOENV=1
 | 
				
			||||||
 | 
					      return
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if zstyle -T ':prezto:module:python' autoenv; then
 | 
				
			||||||
 | 
					    add-zsh-hook chpwd autoenv
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Aliases
 | 
					# Aliases
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user