2012-01-31 23:37:51 -05:00
|
|
|
#
|
2011-10-11 23:13:58 -04:00
|
|
|
# Initializes Oh My Zsh.
|
2012-01-31 23:37:51 -05:00
|
|
|
#
|
|
|
|
# Authors:
|
|
|
|
# Robby Russell <robby@planetargon.com>
|
|
|
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
|
|
#
|
2011-10-11 23:13:58 -04:00
|
|
|
|
|
|
|
# Check for the minimum supported version.
|
2012-01-18 22:02:23 -05:00
|
|
|
min_zsh_version='4.3.10'
|
2011-10-11 23:13:58 -04:00
|
|
|
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
|
2012-01-27 18:54:32 -05:00
|
|
|
print "omz: old shell detected, minimum required: $min_zsh_version" >&2
|
2011-10-11 23:13:58 -04:00
|
|
|
fi
|
|
|
|
unset min_zsh_version
|
2009-09-01 10:41:18 -04:00
|
|
|
|
2011-12-26 13:37:53 -05:00
|
|
|
# Disable color and theme in dumb terminals.
|
2011-06-01 02:48:26 -04:00
|
|
|
if [[ "$TERM" == 'dumb' ]]; then
|
2011-12-26 13:37:53 -05:00
|
|
|
zstyle ':omz:*:*' color 'no'
|
|
|
|
zstyle ':omz:prompt' theme 'off'
|
2011-02-27 10:13:57 -05:00
|
|
|
fi
|
|
|
|
|
2012-03-28 12:41:39 -04:00
|
|
|
# Get enabled OMZ modules.
|
|
|
|
zstyle -a ':omz:load' omodule 'omodules'
|
2011-12-26 13:37:53 -05:00
|
|
|
|
2011-07-17 20:15:51 -04:00
|
|
|
# Add functions to fpath.
|
2011-09-23 20:11:33 -04:00
|
|
|
fpath=(
|
2011-10-11 23:13:58 -04:00
|
|
|
${0:h}/themes/*(/FN)
|
2012-03-28 12:41:39 -04:00
|
|
|
${omodules:+${0:h}/modules/${^omodules}/{functions,completions}(/FN)}
|
2011-09-23 20:11:33 -04:00
|
|
|
$fpath
|
|
|
|
)
|
|
|
|
|
2012-03-28 12:41:39 -04:00
|
|
|
# Load Zsh modules.
|
|
|
|
zstyle -a ':omz:load' module 'zmodules'
|
|
|
|
for zmodule in "$zmodules[@]"; do
|
|
|
|
zmodload "${(z)zmodule}"
|
2012-03-30 15:45:44 -04:00
|
|
|
done
|
2012-03-28 12:41:39 -04:00
|
|
|
unset zmodules zmodule
|
2012-03-30 15:45:44 -04:00
|
|
|
|
|
|
|
# Autoload Zsh functions.
|
2012-03-28 12:41:39 -04:00
|
|
|
zstyle -a ':omz:load' function 'zfunctions'
|
|
|
|
for zfunction in "$zfunctions[@]"; do
|
|
|
|
autoload -Uz "$zfunction"
|
2012-03-30 15:45:44 -04:00
|
|
|
done
|
2012-03-28 12:41:39 -04:00
|
|
|
unset zfunctions zfunction
|
2012-03-30 15:45:44 -04:00
|
|
|
|
2011-09-23 20:11:33 -04:00
|
|
|
# Load and initialize the completion system ignoring insecure directories.
|
2011-07-14 22:50:40 -04:00
|
|
|
autoload -Uz compinit && compinit -i
|
|
|
|
|
2011-09-23 20:11:33 -04:00
|
|
|
# Source files (the order matters).
|
2011-10-10 21:49:47 -04:00
|
|
|
source "${0:h}/helper.zsh"
|
2009-10-01 03:55:07 -04:00
|
|
|
|
2012-03-28 12:41:39 -04:00
|
|
|
# Source modules defined in ~/.zshrc.
|
|
|
|
for omodule in "$omodules[@]"; do
|
|
|
|
if [[ ! -d "${0:h}/modules/$omodule" ]]; then
|
|
|
|
print "omz: no such module: $omodule" >&2
|
2011-12-29 23:19:16 -05:00
|
|
|
fi
|
|
|
|
|
2012-03-28 12:41:39 -04:00
|
|
|
if [[ -f "${0:h}/modules/$omodule/init.zsh" ]]; then
|
|
|
|
source "${0:h}/modules/$omodule/init.zsh"
|
2011-04-12 17:41:09 -04:00
|
|
|
fi
|
2012-03-28 12:19:53 -04:00
|
|
|
|
|
|
|
if (( $? == 0 )); then
|
2012-03-28 12:41:39 -04:00
|
|
|
zstyle ":omz:module:$omodule" loaded 'yes'
|
2012-03-28 12:19:53 -04:00
|
|
|
fi
|
2011-04-12 17:41:09 -04:00
|
|
|
done
|
2012-03-28 12:41:39 -04:00
|
|
|
unset omodule omodules
|
2011-10-11 23:13:58 -04:00
|
|
|
|
|
|
|
# Autoload Oh My Zsh functions.
|
|
|
|
for fdir in "$fpath[@]"; do
|
|
|
|
if [[ "$fdir" == ${0:h}/(|*/)functions ]]; then
|
2012-03-28 12:41:39 -04:00
|
|
|
for ofunction in $fdir/[^_.]*(N.:t); do
|
|
|
|
autoload -Uz "$ofunction"
|
2011-10-11 23:13:58 -04:00
|
|
|
done
|
|
|
|
fi
|
|
|
|
done
|
2012-03-28 12:41:39 -04:00
|
|
|
unset fdir ofunction
|
2011-04-12 17:41:09 -04:00
|
|
|
|
2011-09-23 20:11:33 -04:00
|
|
|
# Set environment variables for launchd processes.
|
2011-09-05 00:32:39 -04:00
|
|
|
if [[ "$OSTYPE" == darwin* ]]; then
|
2011-12-28 15:06:21 -05:00
|
|
|
for env_var in PATH MANPATH; do
|
|
|
|
launchctl setenv "$env_var" "${(P)env_var}" &!
|
|
|
|
done
|
2012-01-27 18:54:32 -05:00
|
|
|
unset env_var
|
2011-09-05 00:32:39 -04:00
|
|
|
fi
|
|
|
|
|
2011-07-17 20:15:51 -04:00
|
|
|
# Load and run the prompt theming system.
|
2011-09-23 20:11:33 -04:00
|
|
|
autoload -Uz promptinit && promptinit
|
2011-04-29 05:24:29 -04:00
|
|
|
|
2011-12-26 13:37:53 -05:00
|
|
|
# Load the prompt theme.
|
|
|
|
zstyle -a ':omz:prompt' theme 'prompt_argv'
|
2012-03-12 19:56:03 -04:00
|
|
|
if (( $#prompt_argv > 0 )); then
|
|
|
|
prompt "$prompt_argv[@]"
|
|
|
|
else
|
|
|
|
prompt 'off'
|
|
|
|
fi
|
2011-12-26 13:37:53 -05:00
|
|
|
unset prompt_argv
|
|
|
|
|
2012-01-27 18:54:32 -05:00
|
|
|
# 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"
|
2011-09-05 00:22:23 -04:00
|
|
|
fi
|
2012-01-27 18:54:32 -05:00
|
|
|
unset dump_file
|
2011-05-30 19:46:27 -04:00
|
|
|
|