63 lines
1.3 KiB
Bash
63 lines
1.3 KiB
Bash
#!/usr/bin/env zsh
|
|
#
|
|
# .zshrc - Zsh file loaded on interactive shell sessions.
|
|
#
|
|
|
|
#
|
|
# Profiling
|
|
#
|
|
|
|
# Load zprof first if we need to profile.
|
|
[[ ${ZPROFRC:-0} -eq 0 ]] || zmodload zsh/zprof
|
|
alias zprofrc="ZPROFRC=1 zsh"
|
|
|
|
#
|
|
# Options
|
|
#
|
|
|
|
# Set general Zsh options needed for config.
|
|
setopt extended_glob
|
|
|
|
#
|
|
# Lazy-load functions
|
|
#
|
|
|
|
# Autoload functions directory and its subdirs.
|
|
for funcdir in $ZDOTDIR/functions $ZDOTDIR/functions/*(N/); do
|
|
fpath=($funcdir $fpath)
|
|
autoload -Uz $fpath[1]/*(.:t)
|
|
done
|
|
unset funcdir
|
|
|
|
#
|
|
# Pre-antidote
|
|
#
|
|
|
|
# Be sure to set any supplemental completions directories before compinit is run.
|
|
fpath=(${ZDOTDIR}/completions(-/FN) $fpath)
|
|
|
|
#
|
|
# antidote
|
|
#
|
|
|
|
[[ -d ${ZDOTDIR:-~}/.antidote ]] ||
|
|
git clone https://github.com/mattmc3/antidote ${ZDOTDIR:-~}/.antidote
|
|
|
|
# Set the name of the static .zsh plugins file antidote will generate.
|
|
zsh_plugins=${ZDOTDIR:-~}/.zsh_plugins.zsh
|
|
|
|
# Ensure you have a .zsh_plugins.txt file where you can add plugins.
|
|
[[ -f ${zsh_plugins:r}.txt ]] || touch ${zsh_plugins:r}.txt
|
|
|
|
# Lazy-load antidote.
|
|
fpath+=(${ZDOTDIR:-~}/.antidote/functions)
|
|
autoload -Uz $fpath[-1]/antidote
|
|
|
|
# Generate static file in a subshell when .zsh_plugins.txt is updated.
|
|
if [[ ! $zsh_plugins -nt ${zsh_plugins:r}.txt ]]; then
|
|
(antidote bundle <${zsh_plugins:r}.txt >|$zsh_plugins)
|
|
fi
|
|
|
|
# Source your static plugins file.
|
|
source $zsh_plugins
|
|
|