-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathzshrc
More file actions
44 lines (34 loc) · 953 Bytes
/
zshrc
File metadata and controls
44 lines (34 loc) · 953 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Enable advanced globbing
setopt extendedglob
if [[ -d $HOME/.zsh/functions ]]; then
for function in "$HOME"/.zsh/functions/*; do
source "$function"
done
fi
# Config loader
_load_settings() {
local _dir=$1
[[ ! -d $_dir ]] && return 0
# Load pre/* first
for cfg in "$_dir"/pre/**/*.zsh~*.zwc(N-.); do source "$cfg"; done
# Load everything except pre/, post/, and compiled .zwc
for cfg in "$_dir"/**/*.zsh(N-.); do
case $cfg in
"$_dir"/(pre|post)/*) ;;
*) source "$cfg" ;;
esac
done
# Load post/* last
for cfg in "$_dir"/post/**/*.zsh~*.zwc(N-.); do source "$cfg"; done
}
_load_settings $HOME/.zsh/configs
# Local config
[[ -f $HOME/.zshrc.local ]] && source $HOME/.zshrc.local
# Aliases
alias_dirs=( "$HOME"/.aliases )
[[ -d $HOME/.aliases.local ]] && alias_dirs+=( "$HOME"/.aliases.local )
for dir in "${alias_dirs[@]}"; do
for file in "$dir"/*.aliases(N-.); do
source "$file"
done
done