Remove silly message on logout display non-success exit value for every command Add first version of modules and load them up Add more paths Allow the sharing of prezto files by differentiating ZDOTDIR and where temp cache files will go: _ZDOTDIR/HOME remove Vim swap files Allow for both a shared and personal overriding .zpreztorc In shared system, put .zcompdump in user's home Fix path of .zcompdump Fixed names of prompt Support callbacks to override user & host value & style Fix transpose* bindings for vi and ^Y for emacs Fixed ordering of paths
118 lines
3.1 KiB
Bash
118 lines
3.1 KiB
Bash
#
|
|
# Initializes Prezto.
|
|
#
|
|
# Authors:
|
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
#
|
|
|
|
#
|
|
# Version Check
|
|
#
|
|
|
|
# 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 "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:+${ZDOTDIR:-$HOME}/.zprezto/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 ${ZDOTDIR:-$HOME}/.zprezto/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 "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule" ]]; then
|
|
print "$0: no such module: $pmodule" >&2
|
|
continue
|
|
else
|
|
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" ]]; then
|
|
source "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh"
|
|
fi
|
|
|
|
if (( $? == 0 )); then
|
|
zstyle ":prezto:module:$pmodule" loaded 'yes'
|
|
else
|
|
# Remove the $fpath entry.
|
|
fpath[(r)${ZDOTDIR:-$HOME}/.zprezto/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 ${ZDOTDIR:-$HOME}/.zprezto/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 "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then
|
|
source "${ZDOTDIR:-$HOME}/.zpreztorc"
|
|
fi
|
|
# huy: Let a shared zpreztorc file count first (where ZDOTDIR is the location of the shared files)
|
|
if [[ "${_ZDOTDIR:-$HOME}" != "${ZDOTDIR:-$HOME}" && -s "${_ZDOTDIR:-$HOME}/.zpreztorc" ]]; then
|
|
source "${_ZDOTDIR:-$HOME}/.zpreztorc"
|
|
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
|
|
|