forked from htr3n/zsh-config
-
Notifications
You must be signed in to change notification settings - Fork 1
/
zshrc
57 lines (44 loc) · 1.43 KB
/
zshrc
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
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env zsh
# for profiling zsh
# https://unix.stackexchange.com/a/329719/27109
# zmodload zsh/zprof
GPG_TTY=$(tty)
export GPG_TTY
export CLICOLOR=1
export ZSHCONFIG=${ZDOTDIR:-$HOME}/.zsh-config
ZSH_INIT=${ZSHCONFIG}/_init.sh
if [[ -s ${ZSH_INIT} ]]; then
source ${ZSH_INIT}
else
echo "Could not find the init script ${ZSH_INIT}"
fi
#
# Completion enhancements
#
[[ ${TERM} != dumb ]] && () {
# Load and initialize the completion system
local zstats zold_dat
local zcompdump=${ZDOTDIR:-${HOME}}/.zcompdump
# Check if dumpfile is up-to-date by comparing the full path and
# last modification time of all the completion functions in fpath.
local -i zdump_dat=1
local -r zcomps=(${^fpath}/^([^_]*|*~|*.zwc)(N))
if (( ${#zcomps} )); then
zmodload -F zsh/stat b:zstat
zstat -A zstats +mtime ${zcomps}
fi
local -r znew_dat=${ZSH_VERSION}$'\0'${(pj:\0:)zcomps}$'\0'${(pj:\0:)zstats}
if [[ -e ${zcompdump}.dat ]]; then
zmodload -F zsh/system b:sysread
sysread -s ${#znew_dat} zold_dat <${zcompdump}.dat
[[ ${zold_dat} == ${znew_dat} ]]; zdump_dat=${?}
fi
if (( zdump_dat )) command rm -f ${zcompdump}(|.dat|.zwc(|.old))(N)
autoload -Uz compinit && compinit -C -d ${zcompdump}
if [[ ! ${zcompdump}.dat -nt ${zcompdump} ]]; then
>! ${zcompdump}.dat <<<${znew_dat}
fi
# Compile the completion dumpfile; significant speedup
if [[ ! ${zcompdump}.zwc -nt ${zcompdump} ]] zcompile ${zcompdump}
}
# zprof