1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
prezto/init.zsh

128 lines
3.0 KiB

#
# Initializes Prezto.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
#
# Configuration
#
# Set PREZTO_DIR to the default value if not already set
if [ -z "${PREZTO_DIR}" ]; then
PREZTO_DIR="${ZDOTDIR:-$HOME}/.zprezto"
fi
# Set PREZTORC to the default value if not already set
if [ -z "${PREZTORC}" ]; then
PREZTORC="${ZDOTDIR:-$HOME}/.zpreztorc"
fi
#
# Version Check
#
# Check for the minimum supported version.
min_zsh_version='4.3.17'
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
print "prezto: old shell detected, minimum required: $min_zsh_version" >&2
return 1
fi
unset min_zsh_version
#
# Module Loader
#
# Loads Prezto modules.
function pmodload {
local -a pmodules
local pmodule
local pfunction_glob='^([_.]*|prompt_*_setup|README*)(-.N:t)'
# $argv is overridden in the anonymous function.
pmodules=("$argv[@]")
# Add functions to $fpath.
fpath=(${pmodules:+${PREZTO_DIR}/modules/${^pmodules}/functions(/FN)} $fpath)
function {
local pfunction
# Extended globbing is needed for listing autoloadable function directories.
setopt LOCAL_OPTIONS EXTENDED_GLOB
# Load Prezto functions.
for pfunction in ${PREZTO_DIR}/modules/${^pmodules}/functions/$~pfunction_glob; do
autoload -Uz "$pfunction"
done
}
# Load Prezto modules.
for pmodule in "$pmodules[@]"; do
if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then
continue
elif [[ ! -d "${PREZTO_DIR}/modules/$pmodule" ]]; then
print "$0: no such module: $pmodule" >&2
continue
else
if [[ -s "${PREZTO_DIR}/modules/$pmodule/init.zsh" ]]; then
source "${PREZTO_DIR}/modules/$pmodule/init.zsh"
fi
if (( $? == 0 )); then
zstyle ":prezto:module:$pmodule" loaded 'yes'
else
# Remove the $fpath entry.
fpath[(r)${PREZTO_DIR}/modules/${pmodule}/functions]=()
function {
local pfunction
# Extended globbing is needed for listing autoloadable function
# directories.
setopt LOCAL_OPTIONS EXTENDED_GLOB
# Unload Prezto functions.
for pfunction in ${PREZTO_DIR}/modules/$pmodule/functions/$~pfunction_glob; do
unfunction "$pfunction"
done
}
zstyle ":prezto:module:$pmodule" loaded 'no'
fi
fi
done
}
#
# Prezto Initialization
#
# Source the Prezto configuration file.
if [[ -s "${PREZTORC}" ]]; then
source ${PREZTORC}
fi
# Disable color and theme in dumb terminals.
if [[ "$TERM" == 'dumb' ]]; then
zstyle ':prezto:*:*' color 'no'
zstyle ':prezto:module:prompt' theme 'off'
fi
# Load Zsh modules.
zstyle -a ':prezto:load' zmodule 'zmodules'
for zmodule ("$zmodules[@]") zmodload "zsh/${(z)zmodule}"
unset zmodule{s,}
# Autoload Zsh functions.
zstyle -a ':prezto:load' zfunction 'zfunctions'
for zfunction ("$zfunctions[@]") autoload -Uz "$zfunction"
unset zfunction{s,}
# Load Prezto modules.
zstyle -a ':prezto:load' pmodule 'pmodules'
pmodload "$pmodules[@]"
unset pmodules