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

113 lines
2.7 KiB

# Initializes Oh My Zsh.
# Set the path to OMZ.
export OMZ="${0:h}"
# Check for the minimum supported version.
min_zsh_version='4.3.10'
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
print "omz: old shell detected, minimum required: $min_zsh_version" >&2
fi
unset min_zsh_version
# Disable color and theme in dumb terminals.
if [[ "$TERM" == 'dumb' ]]; then
zstyle ':omz:*:*' color 'no'
zstyle ':omz:prompt' theme 'off'
fi
# Get enabled plugins.
zstyle -a ':omz:load' plugin 'plugins'
# Add functions to fpath.
fpath=(
${OMZ}/themes/*(/FN)
${plugins:+${OMZ}/plugins/${^plugins}/{functions,completions}(/FN)}
${OMZ}/{functions,completions}(/FN)
$fpath
)
# Load and initialize the completion system ignoring insecure directories.
autoload -Uz compinit && compinit -i
# Source files (the order matters).
source "${OMZ}/helper.zsh"
source "${OMZ}/environment.zsh"
source "${OMZ}/terminal.zsh"
source "${OMZ}/keyboard.zsh"
source "${OMZ}/completion.zsh"
source "${OMZ}/history.zsh"
source "${OMZ}/directory.zsh"
source "${OMZ}/alias.zsh"
source "${OMZ}/spectrum.zsh"
source "${OMZ}/utility.zsh"
# Autoload Zsh functions.
autoload -Uz age
autoload -Uz zargs
autoload -Uz zcalc
autoload -Uz zmv
# Source plugins defined in ~/.zshrc.
for plugin in "$plugins[@]"; do
zstyle ":omz:plugin:$plugin" enable 'yes'
if [[ ! -d "${OMZ}/plugins/$plugin" ]]; then
print "omz: no such plugin: $plugin" >&2
fi
if [[ -f "${OMZ}/plugins/$plugin/init.zsh" ]]; then
source "${OMZ}/plugins/$plugin/init.zsh"
fi
done
unset plugin plugins
# Autoload Oh My Zsh functions.
for fdir in "$fpath[@]"; do
if [[ "$fdir" == ${OMZ}/(|*/)functions ]]; then
for func in $fdir/[^_.]*(N.:t); do
autoload -Uz $func
done
fi
done
unset fdir func
# Set environment variables for launchd processes.
if [[ "$OSTYPE" == darwin* ]]; then
for env_var in PATH MANPATH; do
launchctl setenv "$env_var" "${(P)env_var}" &!
done
unset env_var
fi
# Load and run the prompt theming system.
autoload -Uz promptinit && promptinit
# Load the prompt theme.
zstyle -a ':omz:prompt' theme 'prompt_argv'
prompt "$prompt_argv[@]"
unset prompt_argv
# Auto-update Zsh every week.
omz_update="$HOME/.zomzupdate"
if zstyle -t ':omz:updater:auto' update; then
# Initialize the update reminder.
if [[ ! -f "$omz_update" ]]; then
touch "$omz_update"
fi
# Check for update every 7 days.
if [ "$omz_update"(Nm+7) ]; then
update-omz && touch "$omz_update"
fi
fi
unset omz_update
# Compile the completion dump, to increase startup speed.
dump_file="$HOME/.zcompdump"
if [[ "$dump_file" -nt "${dump_file}.zwc" || ! -f "${dump_file}.zwc" ]]; then
zcompile "$dump_file"
fi
unset dump_file