# Snapshot file # Unset all aliases to avoid conflicts with functions unalias -a 2>/dev/null || true # Functions -- () { # undefined builtin autoload -XUz } -ftb-build-module () { # undefined builtin autoload -XUz } -ftb-colorize () { # undefined builtin autoload -XUz } -ftb-compadd () { local -A apre hpre dscrs _oad _mesg local -a isfile _opts __ expl zparseopts -a _opts P:=apre p:=hpre d:=dscrs X+:=expl O:=_oad A:=_oad D:=_oad f=isfile i: S: s: I: x:=_mesg r: R: W: F: M+: E: q e Q n U C J:=__ V:=__ a=__ l=__ k=__ o::=__ 1=__ 2=__ _ftb_curcontext=${curcontext#:} if (( $#_oad != 0 || ! IN_FZF_TAB )) || { -ftb-zstyle -m disabled-on "any" } || ( { -ftb-zstyle -m disabled-on "files" } && [[ -n $isfile ]] ) then builtin compadd "$@" return fi local -a __hits __dscr if (( $#dscrs == 1 )) then __dscr=("${(@P)${(v)dscrs}}") fi builtin compadd -A __hits -D __dscr "$@" local ret=$? if (( $#__hits == 0 )) then if is-at-least 5.9 && (( $#_mesg != 0 )) then builtin compadd -x $_mesg fi return $ret fi expl=$expl[2] [[ -n $expl ]] && _ftb_groups+=$expl local -a keys=(apre hpre PREFIX SUFFIX IPREFIX ISUFFIX) local key expanded __tmp_value=$'<\0>' for key in $keys do expanded=${(P)key} if [[ -n $expanded ]] then __tmp_value+=$'\0'$key$'\0'$expanded fi done if [[ -n $expl ]] then __tmp_value+=$'\0group\0'$_ftb_groups[(ie)$expl] fi if [[ -n $isfile ]] then __tmp_value+=$'\0realdir\0'${${(Qe)~${:-$IPREFIX$hpre}}} fi _opts+=("${(@kv)apre}" "${(@kv)hpre}" $isfile) __tmp_value+=$'\0args\0'${(pj:\1:)_opts} if (( $+builtins[fzf-tab-compcap-generate] )) then fzf-tab-compcap-generate __hits __dscr __tmp_value else local dscr word i for i in {1..$#__hits} do word=$__hits[i] dscr=$__dscr[i] if [[ -n $dscr ]] then dscr=${dscr//$'\n'} elif [[ -n $word ]] then dscr=$word fi _ftb_compcap+=$dscr$'\2'$__tmp_value$'\0word\0'$word done fi builtin compadd "$@" } -ftb-complete () { local -Ua _ftb_groups local choice choices _ftb_curcontext continuous_trigger print_query accept_line bs=$'\2' nul=$'\0' local ret=0 (( $+builtins[fzf-tab-compcap-generate] )) && fzf-tab-compcap-generate -i COLUMNS=500 _ftb__main_complete "$@" || ret=$? (( $+builtins[fzf-tab-compcap-generate] )) && fzf-tab-compcap-generate -o emulate -L zsh -o extended_glob local _ftb_query _ftb_complist=() _ftb_headers=() command opts -ftb-generate-complist -ftb-zstyle -s continuous-trigger continuous_trigger || { [[ $OSTYPE == msys ]] && continuous_trigger=// || continuous_trigger=/ } case $#_ftb_complist in (0) return 1 ;; (1) choices=("EXPECT_KEY" "${_ftb_compcap[1]%$bs*}") if (( _ftb_continue_last )) then choices[1]=$continuous_trigger fi ;; (*) if (( ! _ftb_continue_last )) && [[ $compstate[insert] == *"unambiguous" ]] && [[ -n $compstate[unambiguous] ]] && [[ "$compstate[unambiguous]" != "$compstate[quote]$IPREFIX$PREFIX$compstate[quote]" ]] then compstate[list]= compstate[insert]=unambiguous _ftb_finish=1 return 0 fi -ftb-generate-query -ftb-generate-header -ftb-zstyle -s print-query print_query || print_query=alt-enter -ftb-zstyle -s accept-line accept_line choices=("${(@f)"$(builtin print -rl -- $_ftb_headers $_ftb_complist | -ftb-fzf)"}") ret=$? if [[ $choices[2] == $print_query ]] || [[ -n $choices[1] && $#choices == 1 ]] then local -A v=("${(@0)${_ftb_compcap[1]}}") local -a args=("${(@ps:\1:)v[args]}") [[ -z $args[1] ]] && args=() IPREFIX=$v[IPREFIX] PREFIX=$v[PREFIX] SUFFIX=$v[SUFFIX] ISUFFIX=$v[ISUFFIX] builtin compadd "${args[@]:--Q}" -Q -- $choices[1] compstate[list]= compstate[insert]= if (( $#choices[1] > 0 )) then compstate[insert]='1' [[ $RBUFFER == ' '* ]] || compstate[insert]+=' ' fi _ftb_finish=1 return $ret fi choices[1]=() choices=("${(@)${(@)choices%$nul*}#*$nul}") unset CTXT ;; esac if [[ -n $choices[1] && $choices[1] == $continuous_trigger ]] then typeset -gi _ftb_continue=1 typeset -gi _ftb_continue_last=1 fi if [[ -n $choices[1] && $choices[1] == $accept_line ]] then typeset -gi _ftb_accept=1 fi choices[1]=() _ftb_choices=("${(@)choices}") compstate[list]= compstate[insert]= return $ret } -ftb-fzf () { # undefined builtin autoload -XUz } -ftb-generate-complist () { # undefined builtin autoload -XUz } -ftb-generate-header () { # undefined builtin autoload -XUz } -ftb-generate-query () { # undefined builtin autoload -XUz } -ftb-version () { # undefined builtin autoload -XUz } -ftb-zstyle () { zstyle $1 ":fzf-tab:$_ftb_curcontext" ${@:2} } VCS_INFO_formats () { setopt localoptions noksharrays NO_shwordsplit local msg tmp local -i i local -A hook_com hook_com=(action "$1" action_orig "$1" branch "$2" branch_orig "$2" base "$3" base_orig "$3" staged "$4" staged_orig "$4" unstaged "$5" unstaged_orig "$5" revision "$6" revision_orig "$6" misc "$7" misc_orig "$7" vcs "${vcs}" vcs_orig "${vcs}") hook_com[base-name]="${${hook_com[base]}:t}" hook_com[base-name_orig]="${hook_com[base-name]}" hook_com[subdir]="$(VCS_INFO_reposub ${hook_com[base]})" hook_com[subdir_orig]="${hook_com[subdir]}" : vcs_info-patch-9b9840f2-91e5-4471-af84-9e9a0dc68c1b for tmp in base base-name branch misc revision subdir do hook_com[$tmp]="${hook_com[$tmp]//\%/%%}" done VCS_INFO_hook 'post-backend' if [[ -n ${hook_com[action]} ]] then zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" actionformats msgs (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b|%a]%u%c-' else zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" formats msgs (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b]%u%c-' fi if [[ -n ${hook_com[staged]} ]] then zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" stagedstr tmp [[ -z ${tmp} ]] && hook_com[staged]='S' || hook_com[staged]=${tmp} fi if [[ -n ${hook_com[unstaged]} ]] then zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" unstagedstr tmp [[ -z ${tmp} ]] && hook_com[unstaged]='U' || hook_com[unstaged]=${tmp} fi if [[ ${quiltmode} != 'standalone' ]] && VCS_INFO_hook "pre-addon-quilt" then local REPLY VCS_INFO_quilt addon hook_com[quilt]="${REPLY}" unset REPLY elif [[ ${quiltmode} == 'standalone' ]] then hook_com[quilt]=${hook_com[misc]} fi (( ${#msgs} > maxexports )) && msgs[$(( maxexports + 1 )),-1]=() for i in {1..${#msgs}} do if VCS_INFO_hook "set-message" $(( $i - 1 )) "${msgs[$i]}" then zformat -f msg ${msgs[$i]} a:${hook_com[action]} b:${hook_com[branch]} c:${hook_com[staged]} i:${hook_com[revision]} m:${hook_com[misc]} r:${hook_com[base-name]} s:${hook_com[vcs]} u:${hook_com[unstaged]} Q:${hook_com[quilt]} R:${hook_com[base]} S:${hook_com[subdir]} msgs[$i]=${msg} else msgs[$i]=${hook_com[message]} fi done hook_com=() backend_misc=() return 0 } _SUSEconfig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } __arguments () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } __git_prompt_git () { GIT_OPTIONAL_LOCKS=0 command git "$@" } __starship_get_time () { (( STARSHIP_CAPTURED_TIME = int(rint(EPOCHREALTIME * 1000)) )) } _a2ps () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _a2utils () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _aap () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _abcde () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _absolute_command_paths () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ack () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _acpi () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _acpitool () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _acroread () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _adb () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _add-zle-hook-widget () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _add-zsh-hook () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _aerospace () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _alias () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _aliases () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _all_labels () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _all_matches () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _alsa-utils () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _alternative () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _analyseplugin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ansible () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ant () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _antiword () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _apachectl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _apm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _approximate () { (( ! IN_FZF_TAB )) || unfunction compadd _ftb__approximate (( ! IN_FZF_TAB )) || functions[compadd]=$functions[-ftb-compadd] } _apt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _apt-file () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _apt-move () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _apt-show-versions () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _aptitude () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _arch_archives () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _arch_namespace () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _arg_compile () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _arguments () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _arp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _arping () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _arrays () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _asciidoctor () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _asciinema () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _assign () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _at () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _attr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _augeas () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _auto-apt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _autocd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _avahi () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _awk () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _aws-vault () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _axi-cache () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _az () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _base64 () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _basename () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _basenc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bash () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bash_complete () { local ret=1 local -a suf matches local -x COMP_POINT COMP_CWORD local -a COMP_WORDS COMPREPLY BASH_VERSINFO local -x COMP_LINE="$words" local -A savejobstates savejobtexts (( COMP_POINT = 1 + ${#${(j. .)words[1,CURRENT-1]}} + $#QIPREFIX + $#IPREFIX + $#PREFIX )) (( COMP_CWORD = CURRENT - 1)) COMP_WORDS=("${words[@]}") BASH_VERSINFO=(2 05b 0 1 release) savejobstates=(${(kv)jobstates}) savejobtexts=(${(kv)jobtexts}) [[ ${argv[${argv[(I)nospace]:-0}-1]} = -o ]] && suf=(-S '') matches=(${(f)"$(compgen $@ -- ${words[CURRENT]})"}) if [[ -n $matches ]] then if [[ ${argv[${argv[(I)filenames]:-0}-1]} = -o ]] then compset -P '*/' && matches=(${matches##*/}) compset -S '/*' && matches=(${matches%%/*}) compadd -f "${suf[@]}" -a matches && ret=0 else compadd "${suf[@]}" - "${(@)${(Q@)matches}:#*\ }" && ret=0 compadd -S ' ' - ${${(M)${(Q)matches}:#*\ }% } && ret=0 fi fi if (( ret )) then if [[ ${argv[${argv[(I)default]:-0}-1]} = -o ]] then _default "${suf[@]}" && ret=0 elif [[ ${argv[${argv[(I)dirnames]:-0}-1]} = -o ]] then _directories "${suf[@]}" && ret=0 fi fi return ret } _bash_completions () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _baudrates () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _baz () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _be_name () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _beadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _beep () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bibtex () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bind_addresses () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bindkey () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bison () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bittorrent () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bogofilter () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bpf_filters () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bpython () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _brace_parameter () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _brctl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _brew () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _bsd_disks () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bsd_pkg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bsdconfig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bsdinstall () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _btrfs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bug () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _builtin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bzip2 () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _bzr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cabal () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cache_invalid () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _caffeinate () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cal () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _calendar () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _call_function () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _call_program () { local -xi COLUMNS=999 local curcontext="${curcontext}" tmp err_fd=-1 clocale='_comp_locale;' local -a prefix if [[ "$1" = -p ]] then shift if (( $#_comp_priv_prefix )) then curcontext="${curcontext%:*}/${${(@M)_comp_priv_prefix:#^*[^\\]=*}[1]}:" zstyle -t ":completion:${curcontext}:${1}" gain-privileges && prefix=($_comp_priv_prefix) fi elif [[ "$1" = -l ]] then shift clocale='' fi if (( ${debug_fd:--1} > 2 )) || [[ ! -t 2 ]] then exec {err_fd}>&2 else exec {err_fd}> /dev/null fi { if zstyle -s ":completion:${curcontext}:${1}" command tmp then if [[ "$tmp" = -* ]] then eval $clocale "$tmp[2,-1]" "$argv[2,-1]" else eval $clocale $prefix "$tmp" fi else eval $clocale $prefix "$argv[2,-1]" fi 2>&$err_fd } always { exec {err_fd}>&- } } _canonical_paths () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _capabilities () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ccal () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cdbs-edit-patch () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cdcd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cdr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cdrdao () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cdrecord () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _chattr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _chcon () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _chflags () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _chkconfig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _chmod () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _choom () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _chown () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _chroot () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _chrt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _chsh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cksum () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _clay () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cmdambivalent () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cmdstring () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cmp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _code () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _column () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _combination () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _comm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _command () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _command_names () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _comp_locale () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _compadd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _compdef () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _complete () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _complete_debug () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _complete_help () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _complete_help_generic () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _complete_tag () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _completers () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _composer () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _compress () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _condition () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _configure () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _coreadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _correct () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _correct_filename () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _correct_word () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cowsay () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cpio () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cplay () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cpupower () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _crontab () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cryptsetup () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cscope () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _csplit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cssh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _csup () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ctags () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ctags_tags () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cu () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _curl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cut () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cvs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cvsup () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cygcheck () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cygpath () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cygrunsrv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cygserver () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _cygstart () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dak () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _darcs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _date () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _date_formats () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dates () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dbus () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dchroot () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dchroot-dsa () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dconf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dcop () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dcut () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _deb_architectures () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _deb_codenames () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _deb_files () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _deb_packages () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _debbugs_bugnumber () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _debchange () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _debcheckout () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _debdiff () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _debfoster () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _deborphan () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _debsign () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _debsnap () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _debuild () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _default () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _defaults () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _defer_async_git_register () { case "${PS1}:${PS2}:${PS3}:${PS4}:${RPROMPT}:${RPS1}:${RPS2}:${RPS3}:${RPS4}" in (*(\$\(git_prompt_info\)|\`git_prompt_info\`)*) _omz_register_handler _omz_git_prompt_info ;; esac case "${PS1}:${PS2}:${PS3}:${PS4}:${RPROMPT}:${RPS1}:${RPS2}:${RPS3}:${RPS4}" in (*(\$\(git_prompt_status\)|\`git_prompt_status\`)*) _omz_register_handler _omz_git_prompt_status ;; esac add-zsh-hook -d precmd _defer_async_git_register unset -f _defer_async_git_register } _delimiters () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _describe () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _description () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _devtodo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _df () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dhclient () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dhcpinfo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dict () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dict_words () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _diff () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _diff3 () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _diff_options () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _diffstat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dir_list () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _directories () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _directory_stack () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dirs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _disable () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dispatch () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _django () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dkms () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dladm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dlocate () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dmesg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dmidecode () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dnf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dns_types () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _doas () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _docker () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _domains () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dos2unix () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dpatch-edit-patch () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dpkg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dpkg-buildpackage () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dpkg-cross () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dpkg-repack () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dpkg_source () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dput () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _drill () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dropbox () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dscverify () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dsh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dtrace () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dtruss () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _du () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dumpadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dumper () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dupload () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dvi () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _dyff () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _dynamic_directory_name () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _e2label () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ecasound () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _echotc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _echoti () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ed () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _elfdump () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _elinks () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _email_addresses () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _emulate () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _enable () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _enscript () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _entr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _env () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _eog () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _equal () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _espeak () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _etags () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ethtool () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _evince () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _exec () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _expand () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _expand_alias () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _expand_word () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _extensions () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _external_pwds () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fakeroot () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fbsd_architectures () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fbsd_device_types () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _feh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fetch () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fetchmail () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ffmpeg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _figlet () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _file_descriptors () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _file_flags () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _file_modes () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _file_systems () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _files () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _find () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _find_net_interfaces () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _findmnt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _finger () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fink () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _first () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _flac () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _flex () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _floppy () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _flowadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _flux () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _fmadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fmt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fold () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fortune () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _free () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _freebsd-update () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fs_usage () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fsh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fstat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ftb__approximate () { [[ _matcher_num -gt 1 || "${#:-$PREFIX$SUFFIX}" -le 1 ]] && return 1 local _comp_correct _correct_expl _correct_group comax cfgacc match local oldcontext="${curcontext}" opm="$compstate[pattern_match]" local dounfunction integer ret=1 if [[ "$1" = -a* ]] then cfgacc="${1[3,-1]}" elif [[ "$1" = -a ]] then cfgacc="$2" else zstyle -s ":completion:${curcontext}:" max-errors cfgacc || cfgacc='2 numeric' fi if [[ "$cfgacc" = *numeric* && ${NUMERIC:-1} -ne 1 ]] then [[ "$cfgacc" = *not-numeric* ]] && return 1 comax="${NUMERIC:-1}" else comax="${cfgacc//[^0-9]}" fi [[ "$comax" -lt 1 ]] && return 1 _tags corrections original { if (( ! $+functions[compadd] )) then dounfunction=1 compadd () { local ppre="$argv[(I)-p]" [[ ${argv[(I)-[a-zA-Z]#U[a-zA-Z]#]} -eq 0 && "${#:-$PREFIX$SUFFIX}" -le _comp_correct ]] && return if [[ "$PREFIX" = \~* && ( ppre -eq 0 || "$argv[ppre+1]" != \~* ) ]] then PREFIX="~(#a${_comp_correct})${PREFIX[2,-1]}" else PREFIX="(#a${_comp_correct})$PREFIX" fi (( $_correct_group && ${${argv[1,(r)-(|-)]}[(I)-*[JV]]} )) && _correct_expl[_correct_group]=${argv[1,(r)-(-|)][(R)-*[JV]]} builtin compadd "$_correct_expl[@]" "$@" } fi _comp_correct=1 [[ -z "$compstate[pattern_match]" ]] && compstate[pattern_match]='*' while [[ _comp_correct -le comax ]] do curcontext="${oldcontext/(#b)([^:]#:[^:]#:)/${match[1][1,-2]}-${_comp_correct}:}" _description corrections _correct_expl corrections "e:$_comp_correct" "o:$PREFIX$SUFFIX" _correct_group="$_correct_expl[(I)-*[JV]]" if _complete then if zstyle -t ":completion:${curcontext}:" insert-unambiguous && [[ "${#compstate[unambiguous]}" -ge "${#:-$PREFIX$SUFFIX}" ]] then compstate[pattern_insert]=unambiguous elif _requested original && { [[ compstate[nmatches] -gt 1 ]] || zstyle -t ":completion:${curcontext}:" original } then local expl _description -V original expl original builtin compadd "$expl[@]" -U -Q - "$PREFIX$SUFFIX" [[ "$compstate[list]" != list* ]] && compstate[list]="$compstate[list] force" fi compstate[pattern_match]="$opm" ret=0 break fi [[ "${#:-$PREFIX$SUFFIX}" -le _comp_correct+1 ]] && break (( _comp_correct++ )) done } always { [[ -n $dounfunction ]] && (( $+functions[compadd] )) && unfunction compadd } (( ret == 0 )) && return 0 compstate[pattern_match]="$opm" return 1 } _ftb__main_complete () { local IFS=$' \t\n\0' eval "$_comp_setup" local func funcs ret=1 tmp _compskip format nm call match min max i num _completers _completer _completer_num curtag _comp_force_list _matchers _matcher _c_matcher _matcher_num _comp_tags _comp_mesg mesg str context state state_descr line opt_args val_args curcontext="$curcontext" _last_nmatches=-1 _last_menu_style _def_menu_style _menu_style sel _tags_level=0 _saved_exact="${compstate[exact]}" _saved_lastprompt="${compstate[last_prompt]}" _saved_list="${compstate[list]}" _saved_insert="${compstate[insert]}" _saved_colors="$ZLS_COLORS" _saved_colors_set=${+ZLS_COLORS} _ambiguous_color='' local _comp_priv_prefix unset _comp_priv_prefix local -a precommands local -ar builtin_precommands=(- builtin eval exec nocorrect noglob time) typeset -U _lastdescr _comp_ignore _comp_colors { [[ -z "$curcontext" ]] && curcontext=::: zstyle -s ":completion:${curcontext}:" insert-tab tmp || tmp=yes if [[ ( "$tmp" = *pending(|[[:blank:]]*) && PENDING -gt 0 ) || ( "$tmp" = *pending=(#b)([0-9]##)(|[[:blank:]]*) && PENDING -ge $match[1] ) ]] then compstate[insert]=tab return 0 fi if [[ "$compstate[insert]" = tab* ]] then if [[ "$tmp" = (|*[[:blank:]])(yes|true|on|1)(|[[:blank:]]*) ]] then if [[ "$curcontext" != :* || -z "$compstate[vared]" ]] || zstyle -t ":completion:vared${curcontext}:" insert-tab then return 0 fi fi compstate[insert]="${compstate[insert]//tab /}" fi if [[ "$compstate[pattern_match]" = "*" && "$_lastcomp[unambiguous]" = "$PREFIX" && -n "$_lastcomp[unambiguous_cursor]" ]] then integer upos="$_lastcomp[unambiguous_cursor]" SUFFIX="$PREFIX[upos,-1]$SUFFIX" PREFIX="$PREFIX[1,upos-1]" fi if [[ -z "$compstate[quote]" ]] then if [[ -o equals ]] && compset -P 1 '=' then compstate[context]=equal elif [[ "$PREFIX" != */* && "$PREFIX[1]" = '~' ]] then if [[ "$PREFIX" = '~['[^\]]# ]] then compset -p 2 compset -S '\]*' compstate[context]=subscript [[ -n $_comps[-subscript-] ]] && $_comps[-subscript-] && return else compset -p 1 compstate[context]=tilde fi fi fi _setup default _def_menu_style=("$_last_menu_style[@]") _last_menu_style=() if zstyle -s ":completion:${curcontext}:default" list-prompt tmp then LISTPROMPT="$tmp" zmodload -i zsh/complist fi if zstyle -s ":completion:${curcontext}:default" select-prompt tmp then MENUPROMPT="$tmp" zmodload -i zsh/complist fi if zstyle -s ":completion:${curcontext}:default" select-scroll tmp then MENUSCROLL="$tmp" zmodload -i zsh/complist fi if (( $# )) then if [[ "$1" = - ]] then if [[ $# -lt 3 ]] then _completers=() else _completers=("$2") call=yes fi else _completers=("$@") fi else zstyle -a ":completion:${curcontext}:" completer _completers || _completers=(_complete _ignored) fi _completer_num=1 integer SECONDS=0 TRAPINT () { zle -M "Killed by signal in ${funcstack[2]} after ${SECONDS}s" zle -R return 130 } TRAPQUIT () { zle -M "Killed by signal in ${funcstack[2]} after ${SECONDS}s" zle -R return 131 } funcs=("$compprefuncs[@]") compprefuncs=() for func in "$funcs[@]" do "$func" done for tmp in "$_completers[@]" do if [[ -n "$call" ]] then _completer="${tmp}" elif [[ "$tmp" = *:-* ]] then _completer="${${tmp%:*}[2,-1]//_/-}${tmp#*:}" tmp="${tmp%:*}" elif [[ $tmp = *:* ]] then _completer="${tmp#*:}" tmp="${tmp%:*}" else _completer="${tmp[2,-1]//_/-}" fi curcontext="${curcontext/:[^:]#:/:${_completer}:}" zstyle -t ":completion:${curcontext}:" show-completer && zle -R "Trying completion for :completion:${curcontext}" zstyle -a ":completion:${curcontext}:" matcher-list _matchers || _matchers=('') _matcher_num=1 _matcher='' for _c_matcher in "$_matchers[@]" do if [[ "$_c_matcher" == +* ]] then _matcher="$_matcher $_c_matcher[2,-1]" else _matcher="$_c_matcher" fi _comp_mesg= if [[ -n "$call" ]] then if "${(@)argv[3,-1]}" then ret=0 break 2 fi elif "$tmp" then ret=0 break 2 fi (( _matcher_num++ )) done [[ -n "$_comp_mesg" ]] && break (( _completer_num++ )) done curcontext="${curcontext/:[^:]#:/::}" if [[ $compstate[old_list] = keep ]] then nm=$_lastcomp[nmatches] else nm=$compstate[nmatches] fi if [[ $compstate[old_list] = keep || nm -gt 1 ]] then [[ _last_nmatches -ge 0 && _last_nmatches -ne nm ]] && _menu_style=("$_last_menu_style[@]" "$_menu_style[@]") tmp=$(( compstate[list_lines] + BUFFERLINES + 1 )) _menu_style=("$_menu_style[@]" "$_def_menu_style[@]") if [[ "$compstate[list]" = *list(| *) && tmp -gt LINES && ( -n "$_menu_style[(r)select=long-list]" || -n "$_menu_style[(r)(yes|true|on|1)=long-list]" ) ]] then compstate[insert]=menu elif [[ "$compstate[insert]" = "$_saved_insert" ]] then if [[ -n "$compstate[insert]" && -n "$_menu_style[(r)(yes|true|1|on)=long]" && tmp -gt LINES ]] then compstate[insert]=menu else sel=("${(@M)_menu_style:#(yes|true|1|on)*}") if (( $#sel )) then min=9999999 for i in "$sel[@]" do if [[ "$i" = *\=[0-9]* ]] then num="${i#*\=}" [[ num -lt 0 ]] && num=0 elif [[ "$i" != *\=* ]] then num=0 else num=9999999 fi [[ num -lt min ]] && min="$num" (( min )) || break done fi sel=("${(@M)_menu_style:#(no|false|0|off)*}") if (( $#sel )) then max=9999999 for i in "$sel[@]" do if [[ "$i" = *\=[0-9]* ]] then num="${i#*\=}" [[ num -lt 0 ]] && num=0 elif [[ "$i" != *\=* ]] then num=0 else num=9999999 fi [[ num -lt max ]] && max="$num" (( max )) || break done fi if [[ ( -n "$min" && nm -ge min && ( -z "$max" || nm -lt max ) ) || ( -n "$_menu_style[(r)auto*]" && "$compstate[insert]" = automenu ) ]] then compstate[insert]=menu elif [[ -n "$max" && nm -ge max ]] then compstate[insert]=unambiguous elif [[ -n "$_menu_style[(r)auto*]" && "$compstate[insert]" != automenu ]] then compstate[insert]=automenu-unambiguous fi fi fi if [[ "$compstate[insert]" = *menu* ]] then [[ "$MENUSELECT" = 00 ]] && MENUSELECT=0 if [[ -n "$_menu_style[(r)no-select*]" ]] then unset MENUSELECT elif [[ -n "$_menu_style[(r)select=long*]" ]] then if [[ tmp -gt LINES ]] then zmodload -i zsh/complist MENUSELECT=00 fi fi if [[ "$MENUSELECT" != 00 ]] then sel=("${(@M)_menu_style:#select*}") if (( $#sel )) then min=9999999 for i in "$sel[@]" do if [[ "$i" = *\=[0-9]* ]] then num="${i#*\=}" [[ num -lt 0 ]] && num=0 elif [[ "$i" != *\=* ]] then num=0 else num=9999999 fi [[ num -lt min ]] && min="$num" (( min )) || break done zmodload -i zsh/complist MENUSELECT="$min" else unset MENUSELECT fi fi if [[ -n "$MENUSELECT" ]] then if [[ -n "$_menu_style[(r)interactive*]" ]] then MENUMODE=interactive elif [[ -n "$_menu_style[(r)search*]" ]] then if [[ -n "$_menu_style[(r)*backward*]" ]] then MENUMODE=search-backward else MENUMODE=search-forward fi else unset MENUMODE fi fi fi elif [[ nm -lt 1 && -n "$_comp_mesg" ]] then compstate[insert]='' compstate[list]='list force' elif [[ nm -eq 0 && -z "$_comp_mesg" && $#_lastdescr -ne 0 && $compstate[old_list] != keep ]] && zstyle -s ":completion:${curcontext}:warnings" format format then compstate[list]='list force' compstate[insert]='' tmp=("\`${(@)^_lastdescr:#}'") case $#tmp in (1) str="$tmp[1]" ;; (2) str="$tmp[1] or $tmp[2]" ;; (*) str="${(j:, :)tmp[1,-2]}, or $tmp[-1]" ;; esac _setup warnings zformat -f mesg "$format" "d:$str" "D:${(F)${(@)_lastdescr:#}}" compadd -x "$mesg" fi if [[ -n "$_ambiguous_color" ]] then local toquote='[=\(\)\|~^?*[\]#<>]' local prefix=${${compstate[unambiguous]}[1,${compstate[unambiguous_cursor]}-1]} [[ -n $prefix ]] && _comp_colors+=("=(#i)${prefix[1,-2]//?/(}${prefix[1,-2]//(#m)?/${MATCH/$~toquote/\\$MATCH}|)}${prefix[-1]//(#m)$~toquote/\\$MATCH}(#b)(?|)*==$_ambiguous_color") fi [[ "$_comp_force_list" = always || ( "$_comp_force_list" = ?* && nm -ge _comp_force_list ) ]] && compstate[list]="${compstate[list]//messages} force" } always { if [[ "$compstate[old_list]" = keep ]] then if [[ $_saved_colors_set = 1 ]] then ZLS_COLORS="$_saved_colors" else unset ZLS_COLORS fi elif (( $#_comp_colors )) then ZLS_COLORS="${(j.:.)_comp_colors}" else unset ZLS_COLORS fi } funcs=("$comppostfuncs[@]") comppostfuncs=() for func in "$funcs[@]" do "$func" done _lastcomp=("${(@kv)compstate}") _lastcomp[nmatches]=$nm _lastcomp[completer]="$_completer" _lastcomp[prefix]="$PREFIX" _lastcomp[suffix]="$SUFFIX" _lastcomp[iprefix]="$IPREFIX" _lastcomp[isuffix]="$ISUFFIX" _lastcomp[qiprefix]="$QIPREFIX" _lastcomp[qisuffix]="$QISUFFIX" _lastcomp[tags]="$_comp_tags" return ret } _functions () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fuse_arguments () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fuse_values () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fuser () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fusermount () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fw_update () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _fx () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _fzf-tab-apply () { local choice bs=$'\2' for choice in "$_ftb_choices[@]" do local -A v=("${(@0)${_ftb_compcap[(r)${(b)choice}$bs*]#*$bs}}") local -a args=("${(@ps:\1:)v[args]}") [[ -z $args[1] ]] && args=() IPREFIX=$v[IPREFIX] PREFIX=$v[PREFIX] SUFFIX=$v[SUFFIX] ISUFFIX=$v[ISUFFIX] builtin compadd "${args[@]:--Q}" -Q -- "$v[word]" done compstate[list]= if (( $#_ftb_choices == 1 )) then compstate[insert]='1' [[ $RBUFFER == ' '* ]] || compstate[insert]+=' ' elif (( $#_ftb_choices > 1 )) then compstate[insert]='all' fi } _gcc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gcore () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gdb () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _geany () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gem () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _generic () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _genisoimage () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _getclip () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _getconf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _getent () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _getfacl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _getmail () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _getopt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gh () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _ghostscript () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ghostty () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _git () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _git-buildpackage () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _git_log_prettily () { if ! [ -z $1 ] then git log --pretty=$1 fi } _global () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _global_tags () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _globflags () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _globqual_delims () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _globquals () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gnome-gv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gnu_generic () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gnupod () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gnutls () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _go () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gpasswd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gpg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gphoto2 () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gprof () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gqview () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gradle () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _graphicsmagick () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _grep () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _grep-excuses () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _groff () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _groups () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _growisofs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gsettings () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gstat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _guard () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _guilt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _gzip () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _hash () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _have_glob_qual () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _hdiutil () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _head () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _hexdump () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _history () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _history_complete_word () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _history_modifiers () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _host () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _hostname () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _hosts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _htop () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _hwinfo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _iconv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _iconvconfig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _id () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ifconfig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _iftop () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ignored () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _imagemagick () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _in_vared () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _inetadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _init_d () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _initctl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _install () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _invoke-rc.d () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ionice () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _iostat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ip () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ipadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ipfw () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ipsec () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ipset () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _iptables () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _irssi () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ispell () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _iwconfig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jail () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jails () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _java () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _java_class () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jexec () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jls () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jobs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jobs_bg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jobs_builtin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jobs_fg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _joe () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _join () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jot () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _jq () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _kdeconnect () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _kdump () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _kfmclient () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _kill () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _killall () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _kj () { words=(kubectl "${words[@]:1}") _kubectl } _kjx () { words=(kubectl "${words[@]:1}") _kubectl } _kld () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _knock () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _kpartx () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ktrace () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ktrace_points () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _kubectl () { # undefined builtin autoload -XUz /Users/steve.briggs/.oh-my-zsh/cache/completions } _kvno () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ky () { words=(kubectl "${words[@]:1}") _kubectl } _kyverno () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _last () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ld_debug () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ldap () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ldconfig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ldd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _less () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lha () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _libvirt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lighttpd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _limit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _limits () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _links () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lintian () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _list () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _list_files () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lldb () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ln () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _loadkeys () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _locale () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _localedef () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _locales () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _locate () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _logger () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _logical_volumes () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _login_classes () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _look () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _losetup () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ls () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lsattr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lsblk () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lscfg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lsd () { # undefined builtin autoload -XUz /opt/homebrew/share/zsh/site-functions } _lsdev () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lslv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lsns () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lsof () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lspv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lsusb () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lsvg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ltrace () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lua () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _luarocks () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lynx () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lz4 () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _lzop () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mac_applications () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mac_files_for_application () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _madison () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mail () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mailboxes () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _main_complete () { -ftb-complete "$@" } _make () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _make-kpkg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _man () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mat2 () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _match () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _math () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _math_params () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _matlab () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _md5sum () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mdadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mdfind () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mdls () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mdutil () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _members () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mencal () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _menu () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mere () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mergechanges () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _message () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mii-tool () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mime_types () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mise_hook () { eval "$(/Users/steve.briggs/.local/bin/mise hook-env -s zsh)" } _mise_hook_chpwd () { eval "$(/Users/steve.briggs/.local/bin/mise hook-env -s zsh --reason chpwd)" } _mise_hook_precmd () { eval "$(/Users/steve.briggs/.local/bin/mise hook-env -s zsh --reason precmd)" } _mixerctl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mkdir () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mkfifo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mknod () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mkshortcut () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mktemp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mkzsh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _module () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _module-assistant () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _module_math_func () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _modutils () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mondo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _monotone () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _moosic () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mosh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _most_recent_file () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mount () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mozilla () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mpc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mplayer () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mtools () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mtr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _multi_parts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mupdf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mutt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _my_accounts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _myrepos () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mysql_utils () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _mysqldiff () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nautilus () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nbsd_architectures () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ncftp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nedit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _net_interfaces () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _netcat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _netscape () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _netstat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _networkmanager () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _networksetup () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _newsgroups () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _next_label () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _next_tags () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ng_yargs_completions () { local reply local si=$IFS IFS=$' ' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" ng --get-yargs-completions "${words[@]}")) IFS=$si if [[ ${#reply} -gt 0 ]] then _describe 'values' reply else _default fi } _nginx () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ngrep () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nice () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nkf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nmap () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _normal () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nothing () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _npm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nsenter () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nslookup () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _numbers () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _numfmt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _nvram () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _objdump () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _object_classes () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _object_files () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _obsd_architectures () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _od () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _okular () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _oldlist () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _omz () { local -a cmds subcmds cmds=('changelog:Print the changelog' 'help:Usage information' 'plugin:Manage plugins' 'pr:Manage Oh My Zsh Pull Requests' 'reload:Reload the current zsh session' 'shop:Open the Oh My Zsh shop' 'theme:Manage themes' 'update:Update Oh My Zsh' 'version:Show the version') if (( CURRENT == 2 )) then _describe 'command' cmds elif (( CURRENT == 3 )) then case "$words[2]" in (changelog) local -a refs refs=("${(@f)$(builtin cd -q "$ZSH"; command git for-each-ref --format="%(refname:short):%(subject)" refs/heads refs/tags)}") _describe 'command' refs ;; (plugin) subcmds=('disable:Disable plugin(s)' 'enable:Enable plugin(s)' 'info:Get plugin information' 'list:List plugins' 'load:Load plugin(s)') _describe 'command' subcmds ;; (pr) subcmds=('clean:Delete all Pull Request branches' 'test:Test a Pull Request') _describe 'command' subcmds ;; (theme) subcmds=('list:List themes' 'set:Set a theme in your .zshrc file' 'use:Load a theme') _describe 'command' subcmds ;; esac elif (( CURRENT == 4 )) then case "${words[2]}::${words[3]}" in (plugin::(disable|enable|load)) local -aU valid_plugins if [[ "${words[3]}" = disable ]] then valid_plugins=($plugins) else valid_plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t)) [[ "${words[3]}" = enable ]] && valid_plugins=(${valid_plugins:|plugins}) fi _describe 'plugin' valid_plugins ;; (plugin::info) local -aU plugins plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t)) _describe 'plugin' plugins ;; (plugin::list) local -a opts opts=('--enabled:List enabled plugins only') _describe -o 'options' opts ;; (theme::(set|use)) local -aU themes themes=("$ZSH"/themes/*.zsh-theme(-.N:t:r) "$ZSH_CUSTOM"/**/*.zsh-theme(-.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::)) _describe 'theme' themes ;; esac elif (( CURRENT > 4 )) then case "${words[2]}::${words[3]}" in (plugin::(enable|disable|load)) local -aU valid_plugins if [[ "${words[3]}" = disable ]] then valid_plugins=($plugins) else valid_plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t)) [[ "${words[3]}" = enable ]] && valid_plugins=(${valid_plugins:|plugins}) fi local -a args args=(${words[4,$(( CURRENT - 1))]}) valid_plugins=(${valid_plugins:|args}) _describe 'plugin' valid_plugins ;; esac fi return 0 } _omz::changelog () { local version=${1:-HEAD} format=${3:-"--text"} if ( builtin cd -q "$ZSH" ! command git show-ref --verify refs/heads/$version && ! command git show-ref --verify refs/tags/$version && ! command git rev-parse --verify "${version}^{commit}" ) &> /dev/null then cat >&2 < must be a valid branch, tag or commit. EOF return 1 fi ZSH="$ZSH" command zsh -f "$ZSH/tools/changelog.sh" "$version" "${2:-}" "$format" } _omz::confirm () { if [[ -n "$1" ]] then _omz::log prompt "$1" "${${functrace[1]#_}%:*}" fi read -r -k 1 if [[ "$REPLY" != $'\n' ]] then echo fi } _omz::help () { cat >&2 < [options] Available commands: help Print this help message changelog Print the changelog plugin Manage plugins pr Manage Oh My Zsh Pull Requests reload Reload the current zsh session shop Open the Oh My Zsh shop theme Manage themes update Update Oh My Zsh version Show the version EOF } _omz::log () { setopt localoptions nopromptsubst local logtype=$1 local logname=${3:-${${functrace[1]#_}%:*}} if [[ $logtype = debug && -z $_OMZ_DEBUG ]] then return fi case "$logtype" in (prompt) print -Pn "%S%F{blue}$logname%f%s: $2" ;; (debug) print -P "%F{white}$logname%f: $2" ;; (info) print -P "%F{green}$logname%f: $2" ;; (warn) print -P "%S%F{yellow}$logname%f%s: $2" ;; (error) print -P "%S%F{red}$logname%f%s: $2" ;; esac >&2 } _omz::plugin () { (( $# > 0 && $+functions[$0::$1] )) || { cat >&2 < [options] Available commands: disable Disable plugin(s) enable Enable plugin(s) info Get information of a plugin list [--enabled] List Oh My Zsh plugins load Load plugin(s) EOF return 1 } local command="$1" shift $0::$command "$@" } _omz::plugin::disable () { if [[ -z "$1" ]] then echo "Usage: ${(j: :)${(s.::.)0#_}} [...]" >&2 return 1 fi local -a dis_plugins for plugin in "$@" do if [[ ${plugins[(Ie)$plugin]} -eq 0 ]] then _omz::log warn "plugin '$plugin' is not enabled." continue fi dis_plugins+=("$plugin") done if [[ ${#dis_plugins} -eq 0 ]] then return 1 fi local awk_subst_plugins=" gsub(/[ \t]+(${(j:|:)dis_plugins})[ \t]+/, \" \") # with spaces before or after gsub(/[ \t]+(${(j:|:)dis_plugins})$/, \"\") # with spaces before and EOL gsub(/^(${(j:|:)dis_plugins})[ \t]+/, \"\") # with BOL and spaces after gsub(/\((${(j:|:)dis_plugins})[ \t]+/, \"(\") # with parenthesis before and spaces after gsub(/[ \t]+(${(j:|:)dis_plugins})\)/, \")\") # with spaces before or parenthesis after gsub(/\((${(j:|:)dis_plugins})\)/, \"()\") # with only parentheses gsub(/^(${(j:|:)dis_plugins})\)/, \")\") # with BOL and closing parenthesis gsub(/\((${(j:|:)dis_plugins})$/, \"(\") # with opening parenthesis and EOL " local awk_script=" # if plugins=() is in oneline form, substitute disabled plugins and go to next line /^[ \t]*plugins=\([^#]+\).*\$/ { $awk_subst_plugins print \$0 next } # if plugins=() is in multiline form, enable multi flag and disable plugins if they're there /^[ \t]*plugins=\(/ { multi=1 $awk_subst_plugins print \$0 next } # if multi flag is enabled and we find a valid closing parenthesis, remove plugins and disable multi flag multi == 1 && /^[^#]*\)/ { multi=0 $awk_subst_plugins print \$0 next } multi == 1 && length(\$0) > 0 { $awk_subst_plugins if (length(\$0) > 0) print \$0 next } { print \$0 } " local zdot="${ZDOTDIR:-$HOME}" local zshrc="${${:-"${zdot}/.zshrc"}:A}" awk "$awk_script" "$zshrc" > "$zdot/.zshrc.new" && command cp -f "$zshrc" "$zdot/.zshrc.bck" && command mv -f "$zdot/.zshrc.new" "$zshrc" [[ $? -eq 0 ]] || { local ret=$? _omz::log error "error disabling plugins." return $ret } if ! command zsh -n "$zdot/.zshrc" then _omz::log error "broken syntax in '"${zdot/#$HOME/\~}/.zshrc"'. Rolling back changes..." command mv -f "$zdot/.zshrc.bck" "$zshrc" return 1 fi _omz::log info "plugins disabled: ${(j:, :)dis_plugins}." [[ ! -o interactive ]] || _omz::reload } _omz::plugin::enable () { if [[ -z "$1" ]] then echo "Usage: ${(j: :)${(s.::.)0#_}} [...]" >&2 return 1 fi local -a add_plugins for plugin in "$@" do if [[ ${plugins[(Ie)$plugin]} -ne 0 ]] then _omz::log warn "plugin '$plugin' is already enabled." continue fi add_plugins+=("$plugin") done if [[ ${#add_plugins} -eq 0 ]] then return 1 fi local awk_script=" # if plugins=() is in oneline form, substitute ) with new plugins and go to the next line /^[ \t]*plugins=\([^#]+\).*\$/ { sub(/\)/, \" $add_plugins&\") print \$0 next } # if plugins=() is in multiline form, enable multi flag and indent by default with 2 spaces /^[ \t]*plugins=\(/ { multi=1 indent=\" \" print \$0 next } # if multi flag is enabled and we find a valid closing parenthesis, # add new plugins with proper indent and disable multi flag multi == 1 && /^[^#]*\)/ { multi=0 split(\"$add_plugins\",p,\" \") for (i in p) { print indent p[i] } print \$0 next } # if multi flag is enabled and we didnt find a closing parenthesis, # get the indentation level to match when adding plugins multi == 1 && /^[^#]*/ { indent=\"\" for (i = 1; i <= length(\$0); i++) { char=substr(\$0, i, 1) if (char == \" \" || char == \"\t\") { indent = indent char } else { break } } } { print \$0 } " local zdot="${ZDOTDIR:-$HOME}" local zshrc="${${:-"${zdot}/.zshrc"}:A}" awk "$awk_script" "$zshrc" > "$zdot/.zshrc.new" && command cp -f "$zshrc" "$zdot/.zshrc.bck" && command mv -f "$zdot/.zshrc.new" "$zshrc" [[ $? -eq 0 ]] || { local ret=$? _omz::log error "error enabling plugins." return $ret } if ! command zsh -n "$zdot/.zshrc" then _omz::log error "broken syntax in '"${zdot/#$HOME/\~}/.zshrc"'. Rolling back changes..." command mv -f "$zdot/.zshrc.bck" "$zshrc" return 1 fi _omz::log info "plugins enabled: ${(j:, :)add_plugins}." [[ ! -o interactive ]] || _omz::reload } _omz::plugin::info () { if [[ -z "$1" ]] then echo "Usage: ${(j: :)${(s.::.)0#_}} " >&2 return 1 fi local readme for readme in "$ZSH_CUSTOM/plugins/$1/README.md" "$ZSH/plugins/$1/README.md" do if [[ -f "$readme" ]] then if [[ ! -t 1 ]] then cat "$readme" return $? fi case 1 in (${+commands[glow]}) glow -p "$readme" ;; (${+commands[bat]}) bat -l md --style plain "$readme" ;; (${+commands[less]}) less "$readme" ;; (*) cat "$readme" ;; esac return $? fi done if [[ -d "$ZSH_CUSTOM/plugins/$1" || -d "$ZSH/plugins/$1" ]] then _omz::log error "the '$1' plugin doesn't have a README file" else _omz::log error "'$1' plugin not found" fi return 1 } _omz::plugin::list () { local -a custom_plugins builtin_plugins if [[ "$1" == "--enabled" ]] then local plugin for plugin in "${plugins[@]}" do if [[ -d "${ZSH_CUSTOM}/plugins/${plugin}" ]] then custom_plugins+=("${plugin}") elif [[ -d "${ZSH}/plugins/${plugin}" ]] then builtin_plugins+=("${plugin}") fi done else custom_plugins=("$ZSH_CUSTOM"/plugins/*(-/N:t)) builtin_plugins=("$ZSH"/plugins/*(-/N:t)) fi if [[ ! -t 1 ]] then print -l ${(q-)custom_plugins} ${(q-)builtin_plugins} return fi if (( ${#custom_plugins} )) then print -P "%U%BCustom plugins%b%u:" print -lac ${(q-)custom_plugins} fi if (( ${#builtin_plugins} )) then (( ${#custom_plugins} )) && echo print -P "%U%BBuilt-in plugins%b%u:" print -lac ${(q-)builtin_plugins} fi } _omz::plugin::load () { if [[ -z "$1" ]] then echo "Usage: ${(j: :)${(s.::.)0#_}} [...]" >&2 return 1 fi local plugin base has_completion=0 for plugin in "$@" do if [[ -d "$ZSH_CUSTOM/plugins/$plugin" ]] then base="$ZSH_CUSTOM/plugins/$plugin" elif [[ -d "$ZSH/plugins/$plugin" ]] then base="$ZSH/plugins/$plugin" else _omz::log warn "plugin '$plugin' not found" continue fi if [[ ! -f "$base/_$plugin" && ! -f "$base/$plugin.plugin.zsh" ]] then _omz::log warn "'$plugin' is not a valid plugin" continue elif (( ! ${fpath[(Ie)$base]} )) then fpath=("$base" $fpath) fi local -a comp_files comp_files=($base/_*(N)) has_completion=$(( $#comp_files > 0 )) if [[ -f "$base/$plugin.plugin.zsh" ]] then source "$base/$plugin.plugin.zsh" fi done if (( has_completion )) then compinit -D -d "$_comp_dumpfile" fi } _omz::pr () { (( $# > 0 && $+functions[$0::$1] )) || { cat >&2 < [options] Available commands: clean Delete all PR branches (ohmyzsh/pull-*) test Fetch PR #NUMBER and rebase against master EOF return 1 } local command="$1" shift $0::$command "$@" } _omz::pr::clean () { ( set -e builtin cd -q "$ZSH" local fmt branches fmt="%(color:bold blue)%(align:18,right)%(refname:short)%(end)%(color:reset) %(color:dim bold red)%(objectname:short)%(color:reset) %(color:yellow)%(contents:subject)" branches="$(command git for-each-ref --sort=-committerdate --color --format="$fmt" "refs/heads/ohmyzsh/pull-*")" if [[ -z "$branches" ]] then _omz::log info "there are no Pull Request branches to remove." return fi echo "$branches\n" _omz::confirm "do you want remove these Pull Request branches? [Y/n] " [[ "$REPLY" != [yY$'\n'] ]] && return _omz::log info "removing all Oh My Zsh Pull Request branches..." command git branch --list 'ohmyzsh/pull-*' | while read branch do command git branch -D "$branch" done ) } _omz::pr::test () { if [[ "$1" = https://* ]] then 1="${1:t}" fi if ! [[ -n "$1" && "$1" =~ ^[[:digit:]]+$ ]] then echo "Usage: ${(j: :)${(s.::.)0#_}} " >&2 return 1 fi local branch branch=$(builtin cd -q "$ZSH"; git symbolic-ref --short HEAD) || { _omz::log error "error when getting the current git branch. Aborting..." return 1 } ( set -e builtin cd -q "$ZSH" command git remote -v | while read remote url _ do case "$url" in (https://github.com/ohmyzsh/ohmyzsh(|.git)) found=1 break ;; (git@github.com:ohmyzsh/ohmyzsh(|.git)) found=1 break ;; esac done (( $found )) || { _omz::log error "could not find the ohmyzsh git remote. Aborting..." return 1 } _omz::log info "checking if PR #$1 has the 'testers needed' label..." local pr_json label label_id="MDU6TGFiZWw4NzY1NTkwNA==" pr_json=$( curl -fsSL \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ "https://api.github.com/repos/ohmyzsh/ohmyzsh/pulls/$1" ) if [[ $? -gt 0 || -z "$pr_json" ]] then _omz::log error "error when trying to fetch PR #$1 from GitHub." return 1 fi if (( $+commands[jq] )) then label="$(command jq ".labels.[] | select(.node_id == \"$label_id\")" <<< "$pr_json")" else label="$(command grep "\"$label_id\"" <<< "$pr_json" 2>/dev/null)" fi if [[ -z "$label" ]] then _omz::log warn "PR #$1 does not have the 'testers needed' label. This means that the PR" _omz::log warn "has not been reviewed by a maintainer and may contain malicious code." _omz::log prompt "Do you want to continue testing it? [yes/N] " builtin read -r if [[ "${REPLY:l}" != yes ]] then _omz::log error "PR test canceled. Please ask a maintainer to review and label the PR." return 1 else _omz::log warn "Continuing to check out and test PR #$1. Be careful!" fi fi _omz::log info "fetching PR #$1 to ohmyzsh/pull-$1..." command git fetch -f "$remote" refs/pull/$1/head:ohmyzsh/pull-$1 || { _omz::log error "error when trying to fetch PR #$1." return 1 } _omz::log info "rebasing PR #$1..." local ret gpgsign { gpgsign=$(command git config --local commit.gpgsign 2>/dev/null) || ret=$? [[ $ret -ne 129 ]] || gpgsign=$(command git config commit.gpgsign 2>/dev/null) command git config commit.gpgsign false command git rebase master ohmyzsh/pull-$1 || { command git rebase --abort &> /dev/null _omz::log warn "could not rebase PR #$1 on top of master." _omz::log warn "you might not see the latest stable changes." _omz::log info "run \`zsh\` to test the changes." return 1 } } always { case "$gpgsign" in ("") command git config --unset commit.gpgsign ;; (*) command git config commit.gpgsign "$gpgsign" ;; esac } _omz::log info "fetch of PR #${1} successful." ) [[ $? -eq 0 ]] || return 1 _omz::log info "running \`zsh\` to test the changes. Run \`exit\` to go back." command zsh -l _omz::confirm "do you want to go back to the previous branch? [Y/n] " [[ "$REPLY" != [yY$'\n'] ]] && return ( set -e builtin cd -q "$ZSH" command git checkout "$branch" -- || { _omz::log error "could not go back to the previous branch ('$branch')." return 1 } ) } _omz::reload () { command rm -f $_comp_dumpfile $ZSH_COMPDUMP local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}" [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh" } _omz::shop () { local shop_url="https://commitgoods.com/collections/oh-my-zsh" _omz::log info "Opening Oh My Zsh shop in your browser..." _omz::log info "$shop_url" open_command "$shop_url" } _omz::theme () { (( $# > 0 && $+functions[$0::$1] )) || { cat >&2 < [options] Available commands: list List all available Oh My Zsh themes set Set a theme in your .zshrc file use Load a theme EOF return 1 } local command="$1" shift $0::$command "$@" } _omz::theme::list () { local -a custom_themes builtin_themes custom_themes=("$ZSH_CUSTOM"/**/*.zsh-theme(-.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::)) builtin_themes=("$ZSH"/themes/*.zsh-theme(-.N:t:r)) if [[ ! -t 1 ]] then print -l ${(q-)custom_themes} ${(q-)builtin_themes} return fi if [[ -n "$ZSH_THEME" ]] then print -Pn "%U%BCurrent theme%b%u: " [[ $ZSH_THEME = random ]] && echo "$RANDOM_THEME (via random)" || echo "$ZSH_THEME" echo fi if (( ${#custom_themes} )) then print -P "%U%BCustom themes%b%u:" print -lac ${(q-)custom_themes} echo fi print -P "%U%BBuilt-in themes%b%u:" print -lac ${(q-)builtin_themes} } _omz::theme::set () { if [[ -z "$1" ]] then echo "Usage: ${(j: :)${(s.::.)0#_}} " >&2 return 1 fi if [[ ! -f "$ZSH_CUSTOM/$1.zsh-theme" ]] && [[ ! -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]] && [[ ! -f "$ZSH/themes/$1.zsh-theme" ]] then _omz::log error "%B$1%b theme not found" return 1 fi local awk_script=' !set && /^[ \t]*ZSH_THEME=[^#]+.*$/ { set=1 sub(/^[ \t]*ZSH_THEME=[^#]+.*$/, "ZSH_THEME=\"'$1'\" # set by `omz`") print $0 next } { print $0 } END { # If no ZSH_THEME= line was found, return an error if (!set) exit 1 } ' local zdot="${ZDOTDIR:-$HOME}" local zshrc="${${:-"${zdot}/.zshrc"}:A}" awk "$awk_script" "$zshrc" > "$zdot/.zshrc.new" || { cat < "$zdot/.zshrc.new" && command cp -f "$zshrc" "$zdot/.zshrc.bck" && command mv -f "$zdot/.zshrc.new" "$zshrc" [[ $? -eq 0 ]] || { local ret=$? _omz::log error "error setting theme." return $ret } if ! command zsh -n "$zdot/.zshrc" then _omz::log error "broken syntax in '"${zdot/#$HOME/\~}/.zshrc"'. Rolling back changes..." command mv -f "$zdot/.zshrc.bck" "$zshrc" return 1 fi _omz::log info "'$1' theme set correctly." [[ ! -o interactive ]] || _omz::reload } _omz::theme::use () { if [[ -z "$1" ]] then echo "Usage: ${(j: :)${(s.::.)0#_}} " >&2 return 1 fi if [[ -f "$ZSH_CUSTOM/$1.zsh-theme" ]] then source "$ZSH_CUSTOM/$1.zsh-theme" elif [[ -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]] then source "$ZSH_CUSTOM/themes/$1.zsh-theme" elif [[ -f "$ZSH/themes/$1.zsh-theme" ]] then source "$ZSH/themes/$1.zsh-theme" else _omz::log error "%B$1%b theme not found" return 1 fi ZSH_THEME="$1" [[ $1 = random ]] || unset RANDOM_THEME } _omz::update () { (( $+commands[git] )) || { _omz::log error "git is not installed. Aborting..." return 1 } [[ "$1" != --unattended ]] || { _omz::log error "the \`\e[2m--unattended\e[0m\` flag is no longer supported, use the \`\e[2mupgrade.sh\e[0m\` script instead." _omz::log error "for more information see https://github.com/ohmyzsh/ohmyzsh/wiki/FAQ#how-do-i-update-oh-my-zsh" return 1 } local last_commit=$(builtin cd -q "$ZSH"; git rev-parse HEAD 2>/dev/null) [[ $? -eq 0 ]] || { _omz::log error "\`$ZSH\` is not a git directory. Aborting..." return 1 } zstyle -s ':omz:update' verbose verbose_mode || verbose_mode=default ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" -i -v $verbose_mode || return $? zmodload zsh/datetime echo "LAST_EPOCH=$(( EPOCHSECONDS / 60 / 60 / 24 ))" >| "${ZSH_CACHE_DIR}/.zsh-update" command rm -rf "$ZSH/log/update.lock" if [[ "$(builtin cd -q "$ZSH"; git rev-parse HEAD)" != "$last_commit" ]] then local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}" [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh" fi } _omz::version () { ( builtin cd -q "$ZSH" local version version=$(command git describe --tags HEAD 2>/dev/null) || version=$(command git symbolic-ref --quiet --short HEAD 2>/dev/null) || version=$(command git name-rev --no-undefined --name-only --exclude="remotes/*" HEAD 2>/dev/null) || version="" local commit=$(command git rev-parse --short HEAD 2>/dev/null) printf "%s (%s)\n" "$version" "$commit" ) } _omz_async_callback () { emulate -L zsh local fd=$1 local err=$2 if [[ -z "$err" || "$err" == "hup" ]] then local handler="${(k)_OMZ_ASYNC_FDS[(r)$fd]}" local old_output="${_OMZ_ASYNC_OUTPUT[$handler]}" IFS= read -r -u $fd -d '' "_OMZ_ASYNC_OUTPUT[$handler]" if [[ "$old_output" != "${_OMZ_ASYNC_OUTPUT[$handler]}" ]] then zle .reset-prompt zle -R fi exec {fd}<&- fi zle -F "$fd" _OMZ_ASYNC_FDS[$handler]=-1 _OMZ_ASYNC_PIDS[$handler]=-1 } _omz_async_request () { setopt localoptions noksharrays unset local -i ret=$? typeset -gA _OMZ_ASYNC_FDS _OMZ_ASYNC_PIDS _OMZ_ASYNC_OUTPUT local handler for handler in ${_omz_async_functions} do (( ${+functions[$handler]} )) || continue local fd=${_OMZ_ASYNC_FDS[$handler]:--1} local pid=${_OMZ_ASYNC_PIDS[$handler]:--1} if (( fd != -1 && pid != -1 )) && { true <&$fd } 2> /dev/null then exec {fd}<&- zle -F $fd if [[ -o MONITOR ]] then kill -TERM -$pid 2> /dev/null else kill -TERM $pid 2> /dev/null fi fi _OMZ_ASYNC_FDS[$handler]=-1 _OMZ_ASYNC_PIDS[$handler]=-1 exec {fd}< <( # Tell parent process our PID builtin echo ${sysparams[pid]} # Set exit code for the handler if used () { return $ret } # Run the async function handler $handler ) _OMZ_ASYNC_FDS[$handler]=$fd is-at-least 5.8 || command true read -u $fd "_OMZ_ASYNC_PIDS[$handler]" zle -F "$fd" _omz_async_callback done } _omz_diag_dump_check_core_commands () { builtin echo "Core command check:" local redefined name builtins externals reserved_words redefined=() reserved_words=(do done esac then elif else fi for case if while function repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}') builtins=(alias autoload bg bindkey break builtin bye cd chdir command comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues continue dirs disable disown echo echotc echoti emulate enable eval exec exit false fc fg functions getln getopts hash jobs kill let limit log logout noglob popd print printf pushd pushln pwd r read rehash return sched set setopt shift source suspend test times trap true ttyctl type ulimit umask unalias unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile zle zmodload zparseopts zregexparse zstyle) if is-at-least 5.1 then reserved_word+=(declare export integer float local readonly typeset) else builtins+=(declare export integer float local readonly typeset) fi builtins_fatal=(builtin command local) externals=(zsh) for name in $reserved_words do if [[ $(builtin whence -w $name) != "$name: reserved" ]] then builtin echo "reserved word '$name' has been redefined" builtin which $name redefined+=$name fi done for name in $builtins do if [[ $(builtin whence -w $name) != "$name: builtin" ]] then builtin echo "builtin '$name' has been redefined" builtin which $name redefined+=$name fi done for name in $externals do if [[ $(builtin whence -w $name) != "$name: command" ]] then builtin echo "command '$name' has been redefined" builtin which $name redefined+=$name fi done if [[ -n "$redefined" ]] then builtin echo "SOME CORE COMMANDS HAVE BEEN REDEFINED: $redefined" else builtin echo "All core commands are defined normally" fi } _omz_diag_dump_echo_file_w_header () { local file=$1 if [[ -f $file || -h $file ]] then builtin echo "========== $file ==========" if [[ -h $file ]] then builtin echo "========== ( => ${file:A} ) ==========" fi command cat $file builtin echo "========== end $file ==========" builtin echo elif [[ -d $file ]] then builtin echo "File '$file' is a directory" elif [[ ! -e $file ]] then builtin echo "File '$file' does not exist" else command ls -lad "$file" fi } _omz_diag_dump_one_big_text () { local program programs progfile md5 builtin echo oh-my-zsh diagnostic dump builtin echo builtin echo $outfile builtin echo command date command uname -a builtin echo OSTYPE=$OSTYPE builtin echo ZSH_VERSION=$ZSH_VERSION builtin echo User: $USERNAME builtin echo umask: $(umask) builtin echo _omz_diag_dump_os_specific_version builtin echo programs=(sh zsh ksh bash sed cat grep ls find git posh) local progfile="" extra_str="" sha_str="" for program in $programs do extra_str="" sha_str="" progfile=$(builtin which $program) if [[ $? == 0 ]] then if [[ -e $progfile ]] then if builtin whence shasum &> /dev/null then sha_str=($(command shasum $progfile)) sha_str=$sha_str[1] extra_str+=" SHA $sha_str" fi if [[ -h "$progfile" ]] then extra_str+=" ( -> ${progfile:A} )" fi fi builtin printf '%-9s %-20s %s\n' "$program is" "$progfile" "$extra_str" else builtin echo "$program: not found" fi done builtin echo builtin echo Command Versions: builtin echo "zsh: $(zsh --version)" builtin echo "this zsh session: $ZSH_VERSION" builtin echo "bash: $(bash --version | command grep bash)" builtin echo "git: $(git --version)" builtin echo "grep: $(grep --version)" builtin echo _omz_diag_dump_check_core_commands || return 1 builtin echo builtin echo Process state: builtin echo pwd: $PWD if builtin whence pstree &> /dev/null then builtin echo Process tree for this shell: pstree -p $$ else ps -fT fi builtin set | command grep -a '^\(ZSH\|plugins\|TERM\|LC_\|LANG\|precmd\|chpwd\|preexec\|FPATH\|TTY\|DISPLAY\|PATH\)\|OMZ' builtin echo builtin echo Exported: builtin echo $(builtin export | command sed 's/=.*//') builtin echo builtin echo Locale: command locale builtin echo builtin echo Zsh configuration: builtin echo setopt: $(builtin setopt) builtin echo builtin echo zstyle: builtin zstyle builtin echo builtin echo 'compaudit output:' compaudit builtin echo builtin echo '$fpath directories:' command ls -lad $fpath builtin echo builtin echo oh-my-zsh installation: command ls -ld ~/.z* command ls -ld ~/.oh* builtin echo builtin echo oh-my-zsh git state: ( builtin cd $ZSH && builtin echo "HEAD: $(git rev-parse HEAD)" && git remote -v && git status | command grep "[^[:space:]]" ) if [[ $verbose -ge 1 ]] then ( builtin cd $ZSH && git reflog --date=default | command grep pull ) fi builtin echo if [[ -e $ZSH_CUSTOM ]] then local custom_dir=$ZSH_CUSTOM if [[ -h $custom_dir ]] then custom_dir=$(builtin cd $custom_dir && pwd -P) fi builtin echo "oh-my-zsh custom dir:" builtin echo " $ZSH_CUSTOM ($custom_dir)" ( builtin cd ${custom_dir:h} && command find ${custom_dir:t} -name .git -prune -o -print ) builtin echo fi if [[ $verbose -ge 1 ]] then builtin echo "bindkey:" builtin bindkey builtin echo builtin echo "infocmp:" command infocmp -L builtin echo fi local zdotdir=${ZDOTDIR:-$HOME} builtin echo "Zsh configuration files:" local cfgfile cfgfiles cfgfiles=(/etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin /etc/zlogout $zdotdir/.zshenv $zdotdir/.zprofile $zdotdir/.zshrc $zdotdir/.zlogin $zdotdir/.zlogout ~/.zsh.pre-oh-my-zsh /etc/bashrc /etc/profile ~/.bashrc ~/.profile ~/.bash_profile ~/.bash_logout) command ls -lad $cfgfiles 2>&1 builtin echo if [[ $verbose -ge 1 ]] then for cfgfile in $cfgfiles do _omz_diag_dump_echo_file_w_header $cfgfile done fi builtin echo builtin echo "Zsh compdump files:" local dumpfile dumpfiles command ls -lad $zdotdir/.zcompdump* dumpfiles=($zdotdir/.zcompdump*(N)) if [[ $verbose -ge 2 ]] then for dumpfile in $dumpfiles do _omz_diag_dump_echo_file_w_header $dumpfile done fi } _omz_diag_dump_os_specific_version () { local osname osver version_file version_files case "$OSTYPE" in (darwin*) osname=$(command sw_vers -productName) osver=$(command sw_vers -productVersion) builtin echo "OS Version: $osname $osver build $(sw_vers -buildVersion)" ;; (cygwin) command systeminfo | command head -n 4 | command tail -n 2 ;; esac if builtin which lsb_release > /dev/null then builtin echo "OS Release: $(command lsb_release -s -d)" fi version_files=(/etc/*-release(N) /etc/*-version(N) /etc/*_version(N)) for version_file in $version_files do builtin echo "$version_file:" command cat "$version_file" builtin echo done } _omz_git_prompt_info () { if ! __git_prompt_git rev-parse --git-dir &> /dev/null || [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]] then return 0 fi local ref ref=$(__git_prompt_git symbolic-ref --short HEAD 2> /dev/null) || ref=$(__git_prompt_git describe --tags --exact-match HEAD 2> /dev/null) || ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) || return 0 local upstream if (( ${+ZSH_THEME_GIT_SHOW_UPSTREAM} )) then upstream=$(__git_prompt_git rev-parse --abbrev-ref --symbolic-full-name "@{upstream}" 2>/dev/null) && upstream=" -> ${upstream}" fi echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref:gs/%/%%}${upstream:gs/%/%%}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}" } _omz_git_prompt_status () { [[ "$(__git_prompt_git config --get oh-my-zsh.hide-status 2>/dev/null)" = 1 ]] && return local -A prefix_constant_map prefix_constant_map=('\?\? ' 'UNTRACKED' 'A ' 'ADDED' 'M ' 'MODIFIED' 'MM ' 'MODIFIED' ' M ' 'MODIFIED' 'AM ' 'MODIFIED' ' T ' 'MODIFIED' 'R ' 'RENAMED' ' D ' 'DELETED' 'D ' 'DELETED' 'UU ' 'UNMERGED' 'ahead' 'AHEAD' 'behind' 'BEHIND' 'diverged' 'DIVERGED' 'stashed' 'STASHED') local -A constant_prompt_map constant_prompt_map=('UNTRACKED' "$ZSH_THEME_GIT_PROMPT_UNTRACKED" 'ADDED' "$ZSH_THEME_GIT_PROMPT_ADDED" 'MODIFIED' "$ZSH_THEME_GIT_PROMPT_MODIFIED" 'RENAMED' "$ZSH_THEME_GIT_PROMPT_RENAMED" 'DELETED' "$ZSH_THEME_GIT_PROMPT_DELETED" 'UNMERGED' "$ZSH_THEME_GIT_PROMPT_UNMERGED" 'AHEAD' "$ZSH_THEME_GIT_PROMPT_AHEAD" 'BEHIND' "$ZSH_THEME_GIT_PROMPT_BEHIND" 'DIVERGED' "$ZSH_THEME_GIT_PROMPT_DIVERGED" 'STASHED' "$ZSH_THEME_GIT_PROMPT_STASHED") local status_constants status_constants=(UNTRACKED ADDED MODIFIED RENAMED DELETED STASHED UNMERGED AHEAD BEHIND DIVERGED) local status_text status_text="$(__git_prompt_git status --porcelain -b 2> /dev/null)" if [[ $? -eq 128 ]] then return 1 fi local -A statuses_seen if __git_prompt_git rev-parse --verify refs/stash &> /dev/null then statuses_seen[STASHED]=1 fi local status_lines status_lines=("${(@f)${status_text}}") if [[ "$status_lines[1]" =~ "^## [^ ]+ \[(.*)\]" ]] then local branch_statuses branch_statuses=("${(@s/,/)match}") for branch_status in $branch_statuses do if [[ ! $branch_status =~ "(behind|diverged|ahead) ([0-9]+)?" ]] then continue fi local last_parsed_status=$prefix_constant_map[$match[1]] statuses_seen[$last_parsed_status]=$match[2] done fi for status_prefix in "${(@k)prefix_constant_map}" do local status_constant="${prefix_constant_map[$status_prefix]}" local status_regex=$'(^|\n)'"$status_prefix" if [[ "$status_text" =~ $status_regex ]] then statuses_seen[$status_constant]=1 fi done local status_prompt for status_constant in $status_constants do if (( ${+statuses_seen[$status_constant]} )) then local next_display=$constant_prompt_map[$status_constant] status_prompt="$next_display$status_prompt" fi done echo $status_prompt } _omz_register_handler () { setopt localoptions noksharrays unset typeset -ga _omz_async_functions if [[ -z "$1" ]] || (( ! ${+functions[$1]} )) || (( ${_omz_async_functions[(Ie)$1]} )) then return fi _omz_async_functions+=("$1") if (( ! ${precmd_functions[(Ie)_omz_async_request]} )) && (( ${+functions[_omz_async_request]})) then autoload -Uz add-zsh-hook add-zsh-hook precmd _omz_async_request fi } _omz_source () { local context filepath="$1" case "$filepath" in (lib/*) context="lib:${filepath:t:r}" ;; (plugins/*) context="plugins:${filepath:h:t}" ;; esac local disable_aliases=0 zstyle -T ":omz:${context}" aliases || disable_aliases=1 local -A aliases_pre galiases_pre if (( disable_aliases )) then aliases_pre=("${(@kv)aliases}") galiases_pre=("${(@kv)galiases}") fi if [[ -f "$ZSH_CUSTOM/$filepath" ]] then source "$ZSH_CUSTOM/$filepath" elif [[ -f "$ZSH/$filepath" ]] then source "$ZSH/$filepath" fi if (( disable_aliases )) then if (( #aliases_pre )) then aliases=("${(@kv)aliases_pre}") else (( #aliases )) && unalias "${(@k)aliases}" fi if (( #galiases_pre )) then galiases=("${(@kv)galiases_pre}") else (( #galiases )) && unalias "${(@k)galiases}" fi fi } _open () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _openstack () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _opkg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _options () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _options_set () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _options_unset () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _opustools () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _osascript () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _osc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _other_accounts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _otool () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pack () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pandoc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _parameter () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _parameters () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _paste () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _patch () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _patchutils () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _path_commands () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _path_files () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pax () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pbcopy () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pbm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pbuilder () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pdf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pdftk () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _perf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _perforce () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _perl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _perl_basepods () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _perl_modules () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _perldoc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pfctl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pfexec () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pgids () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pgrep () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _php () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _physical_volumes () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pick_variant () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _picocom () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pidof () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pids () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pine () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ping () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pip () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _piuparts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pkg-config () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pkg5 () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pkg_instance () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pkgadd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pkgin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pkginfo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pkgrm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pkgtool () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _plutil () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pmap () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pon () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _portaudit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _portlint () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _portmaster () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ports () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _portsnap () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _postfix () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _postgresql () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _postscript () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _powerd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _precommand () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _prefix () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _print () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _printenv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _printers () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _process_names () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _procstat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _prompt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _prove () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _prstat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ps () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ps1234 () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pscp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pspdf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _psutils () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ptree () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ptx () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pump () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _putclip () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pwgen () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _pydoc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _python () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _python_modules () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _qdbus () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _qemu () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _qiv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _qtplay () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _quilt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rake () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ranlib () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rar () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rcctl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rclone () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rcs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rdesktop () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _read () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _read_comp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _readelf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _readlink () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _readshortcut () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rebootin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _redirect () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _regex_arguments () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _regex_words () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _remote_files () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _renice () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _reprepro () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _requested () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _retrieve_cache () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _retrieve_mac_apps () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ri () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rlogin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rmdir () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _route () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _routing_domains () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _routing_tables () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rpm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rrdtool () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rsync () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _rubber () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ruby () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _run-help () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _runit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _samba () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _savecore () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _say () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sbuild () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sc_usage () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sccs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sched () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _schedtool () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _schroot () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _scl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _scons () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _screen () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _script () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _scselect () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _scutil () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _seafile () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sed () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _selinux_contexts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _selinux_roles () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _selinux_types () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _selinux_users () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sep_parts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _seq () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sequence () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _service () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _services () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _set () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _set_command () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _setfacl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _setopt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _setpriv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _setsid () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _setup () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _setxkbmap () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _shasum () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _showmount () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _shred () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _shuf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _shutdown () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _signals () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _signify () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sisu () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _slabtop () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _slrn () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _smartmontools () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _smit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _snoop () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _socket () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sockstat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _softwareupdate () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sort () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _source () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _spamassassin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _split () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sqlite () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sqsh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ss () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ssh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ssh_hosts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sshfs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _stat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _stdbuf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _stgit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _store_cache () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _stow () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _strace () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _strftime () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _strings () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _strip () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _stty () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _su () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sub_commands () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sublimetext () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _subscript () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _subversion () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sudo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _suffix_alias_files () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _surfraw () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _svcadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _svccfg () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _svcprop () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _svcs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _svcs_fmri () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _svn-buildpackage () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sw_vers () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _swaks () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _swanctl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _swift () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sys_calls () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sysclean () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sysctl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sysmerge () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _syspatch () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sysrc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sysstat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _systat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _system_profiler () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _sysupgrade () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tac () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tags () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tail () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tar () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tar_archive () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tardy () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tcpdump () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tcpsys () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tcptraceroute () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tee () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _telnet () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _terminals () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tex () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _texi () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _texinfo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tidy () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tiff () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tilde () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tilde_files () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _time_zone () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _timeout () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tla () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tload () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tmux () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _todo.sh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _toilet () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _toolchain-source () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _top () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _topgit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _totd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _touch () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tpb () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tput () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tracepath () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _transmission () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _trap () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _trash () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tree () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _truncate () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _truss () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tty () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ttyctl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ttys () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _tune2fs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _twidge () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _twisted () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _typeset () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ulimit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _uml () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _umountable () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _unace () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _uname () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _unexpand () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _unhash () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _uniq () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _unison () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _units () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _unshare () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _update-alternatives () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _update-rc.d () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _uptime () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _urls () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _urpmi () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _urxvt () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _usbconfig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _uscan () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _user_admin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _user_at_host () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _user_expand () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _user_math_func () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _users () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _users_on () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _valgrind () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _value () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _values () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vared () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vars () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vcs_info () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vcs_info_hooks () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vi () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vim () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vim-addons () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _visudo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vmctl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vmstat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vnc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _volume_groups () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vorbis () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vpnc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _vserver () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _w () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _w3m () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wait () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wajig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wakeup_capable_devices () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wanna-build () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wanted () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _watch () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _watch-snoop () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _webbrowser () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wget () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _whereis () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _which () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _who () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _whois () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _widgets () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wiggle () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wipefs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _wpa_cli () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_arguments () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_borderwidth () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_color () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_colormapid () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_cursor () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_display () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_extension () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_font () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_geometry () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_keysym () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_locale () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_modifier () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_name () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_resource () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_selection_timeout () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_title () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_utils () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_visual () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _x_window () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xargs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xauth () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xautolock () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xclip () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xcode-select () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xdvi () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xfig () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xft_fonts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xinput () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xloadimage () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xmlsoft () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xmlstarlet () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xmms2 () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xmodmap () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xournal () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xpdf () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xrandr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xscreensaver () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xset () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xt_arguments () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xt_session_id () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xterm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xwit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xxd () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _xz () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _yafc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _yast () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _yodl () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _yp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _yum () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zargs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zattr () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zcalc () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zcalc_line () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zcat () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zcompile () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zdump () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zeal () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zed () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zfs () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zfs_dataset () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zfs_pool () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zftp () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zip () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zle () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zlogin () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zmodload () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zmv () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zoneadm () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zones () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zparseopts () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zpty () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zsh () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zsh-mime-handler () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zsh_autosuggest_accept () { local -i retval max_cursor_pos=$#BUFFER if [[ "$KEYMAP" = "vicmd" ]] then max_cursor_pos=$((max_cursor_pos - 1)) fi if (( $CURSOR != $max_cursor_pos || !$#POSTDISPLAY )) then _zsh_autosuggest_invoke_original_widget $@ return fi BUFFER="$BUFFER$POSTDISPLAY" unset POSTDISPLAY _zsh_autosuggest_invoke_original_widget $@ retval=$? if [[ "$KEYMAP" = "vicmd" ]] then CURSOR=$(($#BUFFER - 1)) else CURSOR=$#BUFFER fi return $retval } _zsh_autosuggest_async_request () { zmodload zsh/system 2> /dev/null typeset -g _ZSH_AUTOSUGGEST_ASYNC_FD _ZSH_AUTOSUGGEST_CHILD_PID if [[ -n "$_ZSH_AUTOSUGGEST_ASYNC_FD" ]] && { true <&$_ZSH_AUTOSUGGEST_ASYNC_FD } 2> /dev/null then exec {_ZSH_AUTOSUGGEST_ASYNC_FD}<&- zle -F $_ZSH_AUTOSUGGEST_ASYNC_FD if [[ -n "$_ZSH_AUTOSUGGEST_CHILD_PID" ]] then if [[ -o MONITOR ]] then kill -TERM -$_ZSH_AUTOSUGGEST_CHILD_PID 2> /dev/null else kill -TERM $_ZSH_AUTOSUGGEST_CHILD_PID 2> /dev/null fi fi fi exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <( # Tell parent process our pid echo $sysparams[pid] # Fetch and print the suggestion local suggestion _zsh_autosuggest_fetch_suggestion "$1" echo -nE "$suggestion" ) autoload -Uz is-at-least is-at-least 5.8 || command true read _ZSH_AUTOSUGGEST_CHILD_PID <&$_ZSH_AUTOSUGGEST_ASYNC_FD zle -F "$_ZSH_AUTOSUGGEST_ASYNC_FD" _zsh_autosuggest_async_response } _zsh_autosuggest_async_response () { emulate -L zsh local suggestion if [[ -z "$2" || "$2" == "hup" ]] then IFS='' read -rd '' -u $1 suggestion zle autosuggest-suggest -- "$suggestion" exec {1}<&- fi zle -F "$1" } _zsh_autosuggest_bind_widget () { typeset -gA _ZSH_AUTOSUGGEST_BIND_COUNTS local widget=$1 local autosuggest_action=$2 local prefix=$ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX local -i bind_count case $widgets[$widget] in (user:_zsh_autosuggest_(bound|orig)_*) bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$widget])) ;; (user:*) _zsh_autosuggest_incr_bind_count $widget zle -N $prefix$bind_count-$widget ${widgets[$widget]#*:} ;; (builtin) _zsh_autosuggest_incr_bind_count $widget eval "_zsh_autosuggest_orig_${(q)widget}() { zle .${(q)widget} }" zle -N $prefix$bind_count-$widget _zsh_autosuggest_orig_$widget ;; (completion:*) _zsh_autosuggest_incr_bind_count $widget eval "zle -C $prefix$bind_count-${(q)widget} ${${(s.:.)widgets[$widget]}[2,3]}" ;; esac eval "_zsh_autosuggest_bound_${bind_count}_${(q)widget}() { _zsh_autosuggest_widget_$autosuggest_action $prefix$bind_count-${(q)widget} \$@ }" zle -N -- $widget _zsh_autosuggest_bound_${bind_count}_$widget } _zsh_autosuggest_bind_widgets () { emulate -L zsh local widget local ignore_widgets ignore_widgets=(.\* _\* ${_ZSH_AUTOSUGGEST_BUILTIN_ACTIONS/#/autosuggest-} $ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX\* $ZSH_AUTOSUGGEST_IGNORE_WIDGETS) for widget in ${${(f)"$(builtin zle -la)"}:#${(j:|:)~ignore_widgets}} do if [[ -n ${ZSH_AUTOSUGGEST_CLEAR_WIDGETS[(r)$widget]} ]] then _zsh_autosuggest_bind_widget $widget clear elif [[ -n ${ZSH_AUTOSUGGEST_ACCEPT_WIDGETS[(r)$widget]} ]] then _zsh_autosuggest_bind_widget $widget accept elif [[ -n ${ZSH_AUTOSUGGEST_EXECUTE_WIDGETS[(r)$widget]} ]] then _zsh_autosuggest_bind_widget $widget execute elif [[ -n ${ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS[(r)$widget]} ]] then _zsh_autosuggest_bind_widget $widget partial_accept else _zsh_autosuggest_bind_widget $widget modify fi done } _zsh_autosuggest_capture_completion_async () { _zsh_autosuggest_capture_setup zmodload zsh/parameter 2> /dev/null || return autoload +X _complete functions[_original_complete]=$functions[_complete] _complete () { unset 'compstate[vared]' _original_complete "$@" } vared 1 } _zsh_autosuggest_capture_completion_sync () { _zsh_autosuggest_capture_setup zle autosuggest-capture-completion } _zsh_autosuggest_capture_completion_widget () { local -a +h comppostfuncs comppostfuncs=(_zsh_autosuggest_capture_postcompletion) CURSOR=$#BUFFER zle -- ${(k)widgets[(r)completion:.complete-word:_main_complete]} if is-at-least 5.0.3 then stty -onlcr -ocrnl -F /dev/tty fi echo -nE - $'\0'$BUFFER$'\0' } _zsh_autosuggest_capture_postcompletion () { compstate[insert]=1 unset 'compstate[list]' } _zsh_autosuggest_capture_setup () { if ! is-at-least 5.4 then zshexit () { kill -KILL $$ 2>&- || command kill -KILL $$ sleep 1 } fi zstyle ':completion:*' matcher-list '' zstyle ':completion:*' path-completion false zstyle ':completion:*' max-errors 0 not-numeric bindkey '^I' autosuggest-capture-completion } _zsh_autosuggest_clear () { unset POSTDISPLAY _zsh_autosuggest_invoke_original_widget $@ } _zsh_autosuggest_disable () { typeset -g _ZSH_AUTOSUGGEST_DISABLED _zsh_autosuggest_clear } _zsh_autosuggest_enable () { unset _ZSH_AUTOSUGGEST_DISABLED if (( $#BUFFER )) then _zsh_autosuggest_fetch fi } _zsh_autosuggest_escape_command () { setopt localoptions EXTENDED_GLOB echo -E "${1//(#m)[\"\'\\()\[\]|*?~]/\\$MATCH}" } _zsh_autosuggest_execute () { BUFFER="$BUFFER$POSTDISPLAY" unset POSTDISPLAY _zsh_autosuggest_invoke_original_widget "accept-line" } _zsh_autosuggest_fetch () { if (( ${+ZSH_AUTOSUGGEST_USE_ASYNC} )) then _zsh_autosuggest_async_request "$BUFFER" else local suggestion _zsh_autosuggest_fetch_suggestion "$BUFFER" _zsh_autosuggest_suggest "$suggestion" fi } _zsh_autosuggest_fetch_suggestion () { typeset -g suggestion local -a strategies local strategy strategies=(${=ZSH_AUTOSUGGEST_STRATEGY}) for strategy in $strategies do _zsh_autosuggest_strategy_$strategy "$1" [[ "$suggestion" != "$1"* ]] && unset suggestion [[ -n "$suggestion" ]] && break done } _zsh_autosuggest_highlight_apply () { typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT if (( $#POSTDISPLAY )) then typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT="$#BUFFER $(($#BUFFER + $#POSTDISPLAY)) $ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE" region_highlight+=("$_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT") else unset _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT fi } _zsh_autosuggest_highlight_reset () { typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT if [[ -n "$_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT" ]] then region_highlight=("${(@)region_highlight:#$_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT}") unset _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT fi } _zsh_autosuggest_incr_bind_count () { typeset -gi bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]+1)) _ZSH_AUTOSUGGEST_BIND_COUNTS[$1]=$bind_count } _zsh_autosuggest_invoke_original_widget () { (( $# )) || return 0 local original_widget_name="$1" shift if (( ${+widgets[$original_widget_name]} )) then zle $original_widget_name -- $@ fi } _zsh_autosuggest_modify () { local -i retval local -i KEYS_QUEUED_COUNT local orig_buffer="$BUFFER" local orig_postdisplay="$POSTDISPLAY" unset POSTDISPLAY _zsh_autosuggest_invoke_original_widget $@ retval=$? emulate -L zsh if (( $PENDING > 0 || $KEYS_QUEUED_COUNT > 0 )) then POSTDISPLAY="$orig_postdisplay" return $retval fi if [[ "$BUFFER" = "$orig_buffer"* && "$orig_postdisplay" = "${BUFFER:$#orig_buffer}"* ]] then POSTDISPLAY="${orig_postdisplay:$(($#BUFFER - $#orig_buffer))}" return $retval fi if (( ${+_ZSH_AUTOSUGGEST_DISABLED} )) then return $? fi if (( $#BUFFER > 0 )) then if [[ -z "$ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE" ]] || (( $#BUFFER <= $ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE )) then _zsh_autosuggest_fetch fi fi return $retval } _zsh_autosuggest_partial_accept () { local -i retval cursor_loc local original_buffer="$BUFFER" BUFFER="$BUFFER$POSTDISPLAY" _zsh_autosuggest_invoke_original_widget $@ retval=$? cursor_loc=$CURSOR if [[ "$KEYMAP" = "vicmd" ]] then cursor_loc=$((cursor_loc + 1)) fi if (( $cursor_loc > $#original_buffer )) then POSTDISPLAY="${BUFFER[$(($cursor_loc + 1)),$#BUFFER]}" BUFFER="${BUFFER[1,$cursor_loc]}" else BUFFER="$original_buffer" fi return $retval } _zsh_autosuggest_start () { if (( ${+ZSH_AUTOSUGGEST_MANUAL_REBIND} )) then add-zsh-hook -d precmd _zsh_autosuggest_start fi _zsh_autosuggest_bind_widgets } _zsh_autosuggest_strategy_completion () { emulate -L zsh setopt EXTENDED_GLOB typeset -g suggestion local line REPLY whence compdef > /dev/null || return zmodload zsh/zpty 2> /dev/null || return [[ -n "$ZSH_AUTOSUGGEST_COMPLETION_IGNORE" ]] && [[ "$1" == $~ZSH_AUTOSUGGEST_COMPLETION_IGNORE ]] && return if zle then zpty $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME _zsh_autosuggest_capture_completion_sync else zpty $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME _zsh_autosuggest_capture_completion_async "\$1" zpty -w $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME $'\t' fi { zpty -r $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME line '*'$'\0''*'$'\0' suggestion="${${(@0)line}[2]}" } always { zpty -d $ZSH_AUTOSUGGEST_COMPLETIONS_PTY_NAME } } _zsh_autosuggest_strategy_history () { emulate -L zsh setopt EXTENDED_GLOB local prefix="${1//(#m)[\\*?[\]<>()|^~#]/\\$MATCH}" local pattern="$prefix*" if [[ -n $ZSH_AUTOSUGGEST_HISTORY_IGNORE ]] then pattern="($pattern)~($ZSH_AUTOSUGGEST_HISTORY_IGNORE)" fi typeset -g suggestion="${history[(r)$pattern]}" } _zsh_autosuggest_strategy_match_prev_cmd () { emulate -L zsh setopt EXTENDED_GLOB local prefix="${1//(#m)[\\*?[\]<>()|^~#]/\\$MATCH}" local pattern="$prefix*" if [[ -n $ZSH_AUTOSUGGEST_HISTORY_IGNORE ]] then pattern="($pattern)~($ZSH_AUTOSUGGEST_HISTORY_IGNORE)" fi local history_match_keys history_match_keys=(${(k)history[(R)$~pattern]}) local histkey="${history_match_keys[1]}" local prev_cmd="$(_zsh_autosuggest_escape_command "${history[$((HISTCMD-1))]}")" for key in "${(@)history_match_keys[1,200]}" do [[ $key -gt 1 ]] || break if [[ "${history[$((key - 1))]}" == "$prev_cmd" ]] then histkey="$key" break fi done typeset -g suggestion="$history[$histkey]" } _zsh_autosuggest_suggest () { emulate -L zsh local suggestion="$1" if [[ -n "$suggestion" ]] && (( $#BUFFER )) then POSTDISPLAY="${suggestion#$BUFFER}" else unset POSTDISPLAY fi } _zsh_autosuggest_toggle () { if (( ${+_ZSH_AUTOSUGGEST_DISABLED} )) then _zsh_autosuggest_enable else _zsh_autosuggest_disable fi } _zsh_autosuggest_widget_accept () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_accept $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_autosuggest_widget_clear () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_clear $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_autosuggest_widget_disable () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_disable $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_autosuggest_widget_enable () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_enable $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_autosuggest_widget_execute () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_execute $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_autosuggest_widget_fetch () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_fetch $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_autosuggest_widget_modify () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_modify $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_autosuggest_widget_partial_accept () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_partial_accept $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_autosuggest_widget_suggest () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_suggest $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_autosuggest_widget_toggle () { local -i retval _zsh_autosuggest_highlight_reset _zsh_autosuggest_toggle $@ retval=$? _zsh_autosuggest_highlight_apply zle -R return $retval } _zsh_highlight () { local ret=$? typeset -r ret (( ${+region_highlight[@]} )) || { echo 'zsh-syntax-highlighting: error: $region_highlight is not defined' >&2 echo 'zsh-syntax-highlighting: (Check whether zsh-syntax-highlighting was installed according to the instructions.)' >&2 return $ret } (( ${+zsh_highlight__memo_feature} )) || { region_highlight+=(" 0 0 fg=red, memo=zsh-syntax-highlighting") case ${region_highlight[-1]} in ("0 0 fg=red") integer -gr zsh_highlight__memo_feature=0 ;; ("0 0 fg=red memo=zsh-syntax-highlighting") integer -gr zsh_highlight__memo_feature=1 ;; (" 0 0 fg=red, memo=zsh-syntax-highlighting") ;& (*) if is-at-least 5.9 then integer -gr zsh_highlight__memo_feature=1 else integer -gr zsh_highlight__memo_feature=0 fi ;; esac region_highlight[-1]=() } if (( zsh_highlight__memo_feature )) then region_highlight=("${(@)region_highlight:#*memo=zsh-syntax-highlighting*}") else region_highlight=() fi if [[ $WIDGET == zle-isearch-update ]] && { $zsh_highlight__pat_static_bug || ! (( $+ISEARCHMATCH_ACTIVE )) } then return $ret fi local -A zsyh_user_options if zmodload -e zsh/parameter then zsyh_user_options=("${(kv)options[@]}") else local canonical_options onoff option raw_options raw_options=(${(f)"$(emulate -R zsh; set -o)"}) canonical_options=(${${${(M)raw_options:#*off}%% *}#no} ${${(M)raw_options:#*on}%% *}) for option in "${canonical_options[@]}" do [[ -o $option ]] case $? in (0) zsyh_user_options+=($option on) ;; (1) zsyh_user_options+=($option off) ;; (*) echo "zsh-syntax-highlighting: warning: '[[ -o $option ]]' returned $?" ;; esac done fi typeset -r zsyh_user_options emulate -L zsh setopt localoptions warncreateglobal nobashrematch local REPLY [[ -n ${ZSH_HIGHLIGHT_MAXLENGTH:-} ]] && [[ $#BUFFER -gt $ZSH_HIGHLIGHT_MAXLENGTH ]] && return $ret (( KEYS_QUEUED_COUNT > 0 )) && return $ret (( PENDING > 0 )) && return $ret { local cache_place local -a region_highlight_copy local highlighter for highlighter in $ZSH_HIGHLIGHT_HIGHLIGHTERS do cache_place="_zsh_highlight__highlighter_${highlighter}_cache" typeset -ga ${cache_place} if ! type "_zsh_highlight_highlighter_${highlighter}_predicate" >&/dev/null then echo "zsh-syntax-highlighting: warning: disabling the ${(qq)highlighter} highlighter as it has not been loaded" >&2 ZSH_HIGHLIGHT_HIGHLIGHTERS=(${ZSH_HIGHLIGHT_HIGHLIGHTERS:#${highlighter}}) elif "_zsh_highlight_highlighter_${highlighter}_predicate" then region_highlight_copy=("${region_highlight[@]}") region_highlight=() { "_zsh_highlight_highlighter_${highlighter}_paint" } always { : ${(AP)cache_place::="${region_highlight[@]}"} } region_highlight=("${region_highlight_copy[@]}") fi region_highlight+=("${(@P)cache_place}") done () { (( REGION_ACTIVE )) || return integer min max if (( MARK > CURSOR )) then min=$CURSOR max=$MARK else min=$MARK max=$CURSOR fi if (( REGION_ACTIVE == 1 )) then [[ $KEYMAP = vicmd ]] && (( max++ )) elif (( REGION_ACTIVE == 2 )) then local needle=$'\n' (( min = ${BUFFER[(Ib:min:)$needle]} )) (( max = ${BUFFER[(ib:max:)$needle]} - 1 )) fi _zsh_highlight_apply_zle_highlight region standout "$min" "$max" } (( $+YANK_ACTIVE )) && (( YANK_ACTIVE )) && _zsh_highlight_apply_zle_highlight paste standout "$YANK_START" "$YANK_END" (( $+ISEARCHMATCH_ACTIVE )) && (( ISEARCHMATCH_ACTIVE )) && _zsh_highlight_apply_zle_highlight isearch underline "$ISEARCHMATCH_START" "$ISEARCHMATCH_END" (( $+SUFFIX_ACTIVE )) && (( SUFFIX_ACTIVE )) && _zsh_highlight_apply_zle_highlight suffix bold "$SUFFIX_START" "$SUFFIX_END" return $ret } always { typeset -g _ZSH_HIGHLIGHT_PRIOR_BUFFER="$BUFFER" typeset -gi _ZSH_HIGHLIGHT_PRIOR_CURSOR=$CURSOR } } _zsh_highlight__function_callable_p () { if _zsh_highlight__is_function_p "$1" && ! _zsh_highlight__function_is_autoload_stub_p "$1" then return 0 else ( autoload -U +X -- "$1" 2> /dev/null ) return $? fi } _zsh_highlight__function_is_autoload_stub_p () { if zmodload -e zsh/parameter then [[ "$functions[$1]" == *"builtin autoload -X"* ]] else [[ "${${(@f)"$(which -- "$1")"}[2]}" == $'\t'$histchars[3]' undefined' ]] fi } _zsh_highlight__is_function_p () { if zmodload -e zsh/parameter then (( ${+functions[$1]} )) else [[ $(type -wa -- "$1") == *'function'* ]] fi } _zsh_highlight__zle-line-finish () { () { local -h -r WIDGET=zle-line-finish _zsh_highlight } } _zsh_highlight__zle-line-pre-redraw () { true && _zsh_highlight "$@" } _zsh_highlight_add_highlight () { local -i start end local highlight start=$1 end=$2 shift 2 for highlight do if (( $+ZSH_HIGHLIGHT_STYLES[$highlight] )) then region_highlight+=("$start $end $ZSH_HIGHLIGHT_STYLES[$highlight], memo=zsh-syntax-highlighting") break fi done } _zsh_highlight_apply_zle_highlight () { local entry="$1" default="$2" integer first="$3" second="$4" local region="${zle_highlight[(r)${entry}:*]-}" if [[ -z "$region" ]] then region=$default else region="${region#${entry}:}" if [[ -z "$region" ]] || [[ "$region" == none ]] then return fi fi integer start end if (( first < second )) then start=$first end=$second else start=$second end=$first fi region_highlight+=("$start $end $region, memo=zsh-syntax-highlighting") } _zsh_highlight_bind_widgets () { } _zsh_highlight_brackets_match () { case $BUFFER[$1] in (\() [[ $BUFFER[$2] == \) ]] ;; (\[) [[ $BUFFER[$2] == \] ]] ;; (\{) [[ $BUFFER[$2] == \} ]] ;; (*) false ;; esac } _zsh_highlight_buffer_modified () { [[ "${_ZSH_HIGHLIGHT_PRIOR_BUFFER:-}" != "$BUFFER" ]] } _zsh_highlight_call_widget () { builtin zle "$@" && _zsh_highlight } _zsh_highlight_cursor_moved () { [[ -n $CURSOR ]] && [[ -n ${_ZSH_HIGHLIGHT_PRIOR_CURSOR-} ]] && (($_ZSH_HIGHLIGHT_PRIOR_CURSOR != $CURSOR)) } _zsh_highlight_highlighter_brackets_paint () { local char style local -i bracket_color_size=${#ZSH_HIGHLIGHT_STYLES[(I)bracket-level-*]} buflen=${#BUFFER} level=0 matchingpos pos local -A levelpos lastoflevel matching pos=0 for char in ${(s..)BUFFER} do (( ++pos )) case $char in (["([{"]) levelpos[$pos]=$((++level)) lastoflevel[$level]=$pos ;; ([")]}"]) if (( level > 0 )) then matchingpos=$lastoflevel[$level] levelpos[$pos]=$((level--)) if _zsh_highlight_brackets_match $matchingpos $pos then matching[$matchingpos]=$pos matching[$pos]=$matchingpos fi else levelpos[$pos]=-1 fi ;; esac done for pos in ${(k)levelpos} do if (( $+matching[$pos] )) then if (( bracket_color_size )) then _zsh_highlight_add_highlight $((pos - 1)) $pos bracket-level-$(( (levelpos[$pos] - 1) % bracket_color_size + 1 )) fi else _zsh_highlight_add_highlight $((pos - 1)) $pos bracket-error fi done if [[ $WIDGET != zle-line-finish ]] then pos=$((CURSOR + 1)) if (( $+levelpos[$pos] )) && (( $+matching[$pos] )) then local -i otherpos=$matching[$pos] _zsh_highlight_add_highlight $((otherpos - 1)) $otherpos cursor-matchingbracket fi fi } _zsh_highlight_highlighter_brackets_predicate () { [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_cursor_moved || _zsh_highlight_buffer_modified } _zsh_highlight_highlighter_cursor_paint () { [[ $WIDGET == zle-line-finish ]] && return _zsh_highlight_add_highlight $CURSOR $(( $CURSOR + 1 )) cursor } _zsh_highlight_highlighter_cursor_predicate () { [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_cursor_moved } _zsh_highlight_highlighter_line_paint () { _zsh_highlight_add_highlight 0 $#BUFFER line } _zsh_highlight_highlighter_line_predicate () { _zsh_highlight_buffer_modified } _zsh_highlight_highlighter_main_paint () { setopt localoptions extendedglob if [[ $CONTEXT == (select|vared) ]] then return fi typeset -a ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR typeset -a ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW local -a options_to_set reply local REPLY local flags_with_argument local flags_sans_argument local flags_solo local -A precommand_options precommand_options=('-' '' 'builtin' '' 'command' :pvV 'exec' a:cl 'noglob' '' 'doas' aCu:Lns 'nice' n: 'pkexec' '' 'sudo' Cgprtu:AEHPSbilns:eKkVv 'stdbuf' ioe: 'eatmydata' '' 'catchsegv' '' 'nohup' '' 'setsid' :wc 'env' u:i 'ionice' cn:t:pPu 'strace' IbeaosXPpEuOS:ACdfhikqrtTvVxyDc 'proxychains' f:q 'torsocks' idq:upaP 'torify' idq:upaP 'ssh-agent' aEPt:csDd:k 'tabbed' gnprtTuU:cdfhs:v 'chronic' :ev 'ifne' :n 'grc' :se 'cpulimit' elp:ivz 'ktrace' fgpt:aBCcdiT) if [[ $zsyh_user_options[ignorebraces] == on || ${zsyh_user_options[ignoreclosebraces]:-off} == on ]] then local right_brace_is_recognised_everywhere=false else local right_brace_is_recognised_everywhere=true fi if [[ $zsyh_user_options[pathdirs] == on ]] then options_to_set+=(PATH_DIRS) fi ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR=('|' '||' ';' '&' '&&' $'\n' '|&' '&!' '&|') ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW=($'\x7b' $'\x28' '()' 'while' 'until' 'if' 'then' 'elif' 'else' 'do' 'time' 'coproc' '!') if (( $+X_ZSH_HIGHLIGHT_DIRS_BLACKLIST )) then print 'zsh-syntax-highlighting: X_ZSH_HIGHLIGHT_DIRS_BLACKLIST is deprecated. Please use ZSH_HIGHLIGHT_DIRS_BLACKLIST.' >&2 ZSH_HIGHLIGHT_DIRS_BLACKLIST=($X_ZSH_HIGHLIGHT_DIRS_BLACKLIST) unset X_ZSH_HIGHLIGHT_DIRS_BLACKLIST fi _zsh_highlight_main_highlighter_highlight_list -$#PREBUFFER '' 1 "$PREBUFFER$BUFFER" local start end_ style for start end_ style in $reply do (( start >= end_ )) && { print -r -- "zsh-syntax-highlighting: BUG: _zsh_highlight_highlighter_main_paint: start($start) >= end($end_)" >&2 return } (( end_ <= 0 )) && continue (( start < 0 )) && start=0 _zsh_highlight_main_calculate_fallback $style _zsh_highlight_add_highlight $start $end_ $reply done } _zsh_highlight_highlighter_main_predicate () { [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_buffer_modified } _zsh_highlight_highlighter_pattern_paint () { setopt localoptions extendedglob local pattern for pattern in ${(k)ZSH_HIGHLIGHT_PATTERNS} do _zsh_highlight_pattern_highlighter_loop "$BUFFER" "$pattern" done } _zsh_highlight_highlighter_pattern_predicate () { _zsh_highlight_buffer_modified } _zsh_highlight_highlighter_regexp_paint () { setopt localoptions extendedglob local pattern for pattern in ${(k)ZSH_HIGHLIGHT_REGEXP} do _zsh_highlight_regexp_highlighter_loop "$BUFFER" "$pattern" done } _zsh_highlight_highlighter_regexp_predicate () { _zsh_highlight_buffer_modified } _zsh_highlight_highlighter_root_paint () { if (( EUID == 0 )) then _zsh_highlight_add_highlight 0 $#BUFFER root fi } _zsh_highlight_highlighter_root_predicate () { _zsh_highlight_buffer_modified } _zsh_highlight_load_highlighters () { setopt localoptions noksharrays bareglobqual [[ -d "$1" ]] || { print -r -- "zsh-syntax-highlighting: highlighters directory ${(qq)1} not found." >&2 return 1 } local highlighter highlighter_dir for highlighter_dir in $1/*/(/) do highlighter="${highlighter_dir:t}" [[ -f "$highlighter_dir${highlighter}-highlighter.zsh" ]] && . "$highlighter_dir${highlighter}-highlighter.zsh" if type "_zsh_highlight_highlighter_${highlighter}_paint" &> /dev/null && type "_zsh_highlight_highlighter_${highlighter}_predicate" &> /dev/null then elif type "_zsh_highlight_${highlighter}_highlighter" &> /dev/null && type "_zsh_highlight_${highlighter}_highlighter_predicate" &> /dev/null then if false then print -r -- "zsh-syntax-highlighting: warning: ${(qq)highlighter} highlighter uses deprecated entry point names; please ask its maintainer to update it: https://github.com/zsh-users/zsh-syntax-highlighting/issues/329" >&2 fi eval "_zsh_highlight_highlighter_${(q)highlighter}_paint() { _zsh_highlight_${(q)highlighter}_highlighter \"\$@\" }" eval "_zsh_highlight_highlighter_${(q)highlighter}_predicate() { _zsh_highlight_${(q)highlighter}_highlighter_predicate \"\$@\" }" else print -r -- "zsh-syntax-highlighting: ${(qq)highlighter} highlighter should define both required functions '_zsh_highlight_highlighter_${highlighter}_paint' and '_zsh_highlight_highlighter_${highlighter}_predicate' in ${(qq):-"$highlighter_dir${highlighter}-highlighter.zsh"}." >&2 fi done } _zsh_highlight_main__is_global_alias () { if zmodload -e zsh/parameter then (( ${+galiases[$arg]} )) elif [[ $arg == '='* ]] then return 1 else alias -L -g -- "$1" > /dev/null fi } _zsh_highlight_main__is_redirection () { [[ $1 == (<0-9>|)(\<|\>)* ]] && [[ $1 != (\<|\>)$'\x28'* ]] && [[ $1 != *'<'*'-'*'>'* ]] } _zsh_highlight_main__is_runnable () { if _zsh_highlight_main__type "$1" then [[ $REPLY != none ]] else return 2 fi } _zsh_highlight_main__precmd_hook () { setopt localoptions if eval '[[ -o warnnestedvar ]]' 2> /dev/null then unsetopt warnnestedvar fi _zsh_highlight_main__command_type_cache=() } _zsh_highlight_main__resolve_alias () { if zmodload -e zsh/parameter then REPLY=${aliases[$arg]} else REPLY="${"$(alias -- $arg)"#*=}" fi } _zsh_highlight_main__stack_pop () { if [[ $braces_stack[1] == $1 ]] then braces_stack=${braces_stack:1} if (( $+2 )) then style=$2 fi return 0 else style=unknown-token return 1 fi } _zsh_highlight_main__type () { integer -r aliases_allowed=${2-1} integer may_cache=1 if (( $+_zsh_highlight_main__command_type_cache )) then REPLY=$_zsh_highlight_main__command_type_cache[(e)$1] if [[ -n "$REPLY" ]] then return fi fi if (( $#options_to_set )) then setopt localoptions $options_to_set fi unset REPLY if zmodload -e zsh/parameter then if (( $+aliases[(e)$1] )) then may_cache=0 fi if (( ${+galiases[(e)$1]} )) && (( aliases_allowed )) then REPLY='global alias' elif (( $+aliases[(e)$1] )) && (( aliases_allowed )) then REPLY=alias elif [[ $1 == *.* && -n ${1%.*} ]] && (( $+saliases[(e)${1##*.}] )) then REPLY='suffix alias' elif (( $reswords[(Ie)$1] )) then REPLY=reserved elif (( $+functions[(e)$1] )) then REPLY=function elif (( $+builtins[(e)$1] )) then REPLY=builtin elif (( $+commands[(e)$1] )) then REPLY=command elif { [[ $1 != */* ]] || is-at-least 5.3 } && ! ( builtin type -w -- "$1" ) > /dev/null 2>&1 then REPLY=none fi fi if ! (( $+REPLY )) then REPLY="${$(:; (( aliases_allowed )) || unalias -- "$1" 2>/dev/null; LC_ALL=C builtin type -w -- "$1" 2>/dev/null)##*: }" if [[ $REPLY == 'alias' ]] then may_cache=0 fi fi if (( may_cache )) && (( $+_zsh_highlight_main__command_type_cache )) then _zsh_highlight_main__command_type_cache[(e)$1]=$REPLY fi [[ -n $REPLY ]] return $? } _zsh_highlight_main_add_many_region_highlights () { for 1 2 3 do _zsh_highlight_main_add_region_highlight $1 $2 $3 done } _zsh_highlight_main_add_region_highlight () { integer start=$1 end=$2 shift 2 if (( $#in_alias )) then [[ $1 == unknown-token ]] && alias_style=unknown-token return fi if (( in_param )) then if [[ $1 == unknown-token ]] then param_style=unknown-token fi if [[ -n $param_style ]] then return fi param_style=$1 return fi (( start += buf_offset )) (( end += buf_offset )) list_highlights+=($start $end $1) } _zsh_highlight_main_calculate_fallback () { local -A fallback_of fallback_of=(alias arg0 suffix-alias arg0 global-alias dollar-double-quoted-argument builtin arg0 function arg0 command arg0 precommand arg0 hashed-command arg0 autodirectory arg0 arg0_\* arg0 path_prefix path path_pathseparator path path_prefix_pathseparator path_prefix single-quoted-argument{-unclosed,} double-quoted-argument{-unclosed,} dollar-quoted-argument{-unclosed,} back-quoted-argument{-unclosed,} command-substitution{-quoted,,-unquoted,} command-substitution-delimiter{-quoted,,-unquoted,} command-substitution{-delimiter,} process-substitution{-delimiter,} back-quoted-argument{-delimiter,}) local needle=$1 value reply=($1) while [[ -n ${value::=$fallback_of[(k)$needle]} ]] do unset "fallback_of[$needle]" reply+=($value) needle=$value done } _zsh_highlight_main_highlighter__try_expand_parameter () { local arg="$1" unset reply { { local -a match mbegin mend local MATCH integer MBEGIN MEND local parameter_name local -a words if [[ $arg[1] != '$' ]] then return 1 fi if [[ ${arg[2]} == '{' ]] && [[ ${arg[-1]} == '}' ]] then parameter_name=${${arg:2}%?} else parameter_name=${arg:1} fi if [[ $res == none ]] && [[ ${parameter_name} =~ ^${~parameter_name_pattern}$ ]] && [[ ${(tP)MATCH} != *special* ]] then case ${(tP)MATCH} in (*array*|*assoc*) words=(${(P)MATCH}) ;; ("") words=() ;; (*) if [[ $zsyh_user_options[shwordsplit] == on ]] then words=(${(P)=MATCH}) else words=(${(P)MATCH}) fi ;; esac reply=("${words[@]}") else return 1 fi } } } _zsh_highlight_main_highlighter_check_assign () { setopt localoptions extended_glob [[ $arg == [[:alpha:]_][[:alnum:]_]#(|\[*\])(|[+])=* ]] || [[ $arg == [0-9]##(|[+])=* ]] } _zsh_highlight_main_highlighter_check_path () { _zsh_highlight_main_highlighter_expand_path "$1" local expanded_path="$REPLY" tmp_path integer in_command_position=$2 if [[ $zsyh_user_options[autocd] == on ]] then integer autocd=1 else integer autocd=0 fi if (( in_command_position )) then REPLY=arg0 else REPLY=path fi if [[ ${1[1]} == '=' && $1 == ??* && ${1[2]} != $'\x28' && $zsyh_user_options[equals] == 'on' && $expanded_path[1] != '/' ]] then REPLY=unknown-token return 0 fi [[ -z $expanded_path ]] && return 1 if [[ $expanded_path[1] == / ]] then tmp_path=$expanded_path else tmp_path=$PWD/$expanded_path fi tmp_path=$tmp_path:a while [[ $tmp_path != / ]] do [[ -n ${(M)ZSH_HIGHLIGHT_DIRS_BLACKLIST:#$tmp_path} ]] && return 1 tmp_path=$tmp_path:h done if (( in_command_position )) then if [[ -x $expanded_path ]] then if (( autocd )) then if [[ -d $expanded_path ]] then REPLY=autodirectory fi return 0 elif [[ ! -d $expanded_path ]] then return 0 fi fi else if [[ -L $expanded_path || -e $expanded_path ]] then return 0 fi fi if [[ $expanded_path != /* ]] && (( autocd || ! in_command_position )) then local cdpath_dir for cdpath_dir in $cdpath do if [[ -d "$cdpath_dir/$expanded_path" && -x "$cdpath_dir/$expanded_path" ]] then if (( in_command_position && autocd )) then REPLY=autodirectory fi return 0 fi done fi [[ ! -d ${expanded_path:h} ]] && return 1 if (( has_end && (len == end_pos) )) && (( ! $#in_alias )) && [[ $WIDGET != zle-line-finish ]] then local -a tmp if (( in_command_position )) then tmp=(${expanded_path}*(N-*,N-/)) else tmp=(${expanded_path}*(N)) fi (( ${+tmp[1]} )) && REPLY=path_prefix && return 0 fi return 1 } _zsh_highlight_main_highlighter_expand_path () { (( $# == 1 )) || print -r -- "zsh-syntax-highlighting: BUG: _zsh_highlight_main_highlighter_expand_path: called without argument" >&2 setopt localoptions nonomatch unset REPLY : ${REPLY:=${(Q)${~1}}} } _zsh_highlight_main_highlighter_highlight_argument () { local base_style=default i=$1 option_eligible=${2:-1} path_eligible=1 ret start style local -a highlights local -a match mbegin mend local MATCH integer MBEGIN MEND case "$arg[i]" in ('%') if [[ $arg[i+1] == '?' ]] then (( i += 2 )) fi ;; ('-') if (( option_eligible )) then if [[ $arg[i+1] == - ]] then base_style=double-hyphen-option else base_style=single-hyphen-option fi path_eligible=0 fi ;; ('=') if [[ $arg[i+1] == $'\x28' ]] then (( i += 2 )) _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] ret=$? (( i += REPLY )) highlights+=($(( start_pos + $1 - 1 )) $(( start_pos + i )) process-substitution $(( start_pos + $1 - 1 )) $(( start_pos + $1 + 1 )) process-substitution-delimiter $reply) if (( ret == 0 )) then highlights+=($(( start_pos + i - 1 )) $(( start_pos + i )) process-substitution-delimiter) fi fi ;; esac (( --i )) while (( ++i <= $#arg )) do i=${arg[(ib.i.)[\\\'\"\`\$\<\>\*\?]]} case "$arg[$i]" in ("") break ;; ("\\") (( i += 1 )) continue ;; ("'") _zsh_highlight_main_highlighter_highlight_single_quote $i (( i = REPLY )) highlights+=($reply) ;; ('"') _zsh_highlight_main_highlighter_highlight_double_quote $i (( i = REPLY )) highlights+=($reply) ;; ('`') _zsh_highlight_main_highlighter_highlight_backtick $i (( i = REPLY )) highlights+=($reply) ;; ('$') if [[ $arg[i+1] != "'" ]] then path_eligible=0 fi if [[ $arg[i+1] == "'" ]] then _zsh_highlight_main_highlighter_highlight_dollar_quote $i (( i = REPLY )) highlights+=($reply) continue elif [[ $arg[i+1] == $'\x28' ]] then if [[ $arg[i+2] == $'\x28' ]] && _zsh_highlight_main_highlighter_highlight_arithmetic $i then (( i = REPLY )) highlights+=($reply) continue fi start=$i (( i += 2 )) _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] ret=$? (( i += REPLY )) highlights+=($(( start_pos + start - 1)) $(( start_pos + i )) command-substitution-unquoted $(( start_pos + start - 1)) $(( start_pos + start + 1)) command-substitution-delimiter-unquoted $reply) if (( ret == 0 )) then highlights+=($(( start_pos + i - 1)) $(( start_pos + i )) command-substitution-delimiter-unquoted) fi continue fi while [[ $arg[i+1] == [=~#+'^'] ]] do (( i += 1 )) done if [[ $arg[i+1] == [*@#?$!-] ]] then (( i += 1 )) fi ;; ([\<\>]) if [[ $arg[i+1] == $'\x28' ]] then start=$i (( i += 2 )) _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] ret=$? (( i += REPLY )) highlights+=($(( start_pos + start - 1)) $(( start_pos + i )) process-substitution $(( start_pos + start - 1)) $(( start_pos + start + 1 )) process-substitution-delimiter $reply) if (( ret == 0 )) then highlights+=($(( start_pos + i - 1)) $(( start_pos + i )) process-substitution-delimiter) fi continue fi ;| (*) if $highlight_glob && [[ $zsyh_user_options[multios] == on || $in_redirection -eq 0 ]] && [[ ${arg[$i]} =~ ^[*?] || ${arg:$i-1} =~ ^\<[0-9]*-[0-9]*\> ]] then highlights+=($(( start_pos + i - 1 )) $(( start_pos + i + $#MATCH - 1)) globbing) (( i += $#MATCH - 1 )) path_eligible=0 else continue fi ;; esac done if (( path_eligible )) then if (( in_redirection )) && [[ $last_arg == *['<>']['&'] && $arg[$1,-1] == (<0->|p|-) ]] then if [[ $arg[$1,-1] == (p|-) ]] then base_style=redirection else base_style=numeric-fd fi elif _zsh_highlight_main_highlighter_check_path $arg[$1,-1] 0 then base_style=$REPLY _zsh_highlight_main_highlighter_highlight_path_separators $base_style highlights+=($reply) fi fi highlights=($(( start_pos + $1 - 1 )) $end_pos $base_style $highlights) _zsh_highlight_main_add_many_region_highlights $highlights } _zsh_highlight_main_highlighter_highlight_arithmetic () { local -a saved_reply local style integer i j k paren_depth ret reply=() for ((i = $1 + 3 ; i <= end_pos - start_pos ; i += 1 )) do (( j = i + start_pos - 1 )) (( k = j + 1 )) case "$arg[$i]" in ([\'\"\\@{}]) style=unknown-token ;; ('(') (( paren_depth++ )) continue ;; (')') if (( paren_depth )) then (( paren_depth-- )) continue fi [[ $arg[i+1] == ')' ]] && { (( i++ )) break } (( has_end && (len == k) )) && break return 1 ;; ('`') saved_reply=($reply) _zsh_highlight_main_highlighter_highlight_backtick $i (( i = REPLY )) reply=($saved_reply $reply) continue ;; ('$') if [[ $arg[i+1] == $'\x28' ]] then saved_reply=($reply) if [[ $arg[i+2] == $'\x28' ]] && _zsh_highlight_main_highlighter_highlight_arithmetic $i then (( i = REPLY )) reply=($saved_reply $reply) continue fi (( i += 2 )) _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos] ret=$? (( i += REPLY )) reply=($saved_reply $j $(( start_pos + i )) command-substitution-quoted $j $(( j + 2 )) command-substitution-delimiter-quoted $reply) if (( ret == 0 )) then reply+=($(( start_pos + i - 1 )) $(( start_pos + i )) command-substitution-delimiter) fi continue else continue fi ;; ($histchars[1]) if [[ $arg[i+1] != ('='|$'\x28'|$'\x7b'|[[:blank:]]) ]] then style=history-expansion else continue fi ;; (*) continue ;; esac reply+=($j $k $style) done if [[ $arg[i] != ')' ]] then (( i-- )) fi style=arithmetic-expansion reply=($(( start_pos + $1 - 1)) $(( start_pos + i )) arithmetic-expansion $reply) REPLY=$i } _zsh_highlight_main_highlighter_highlight_backtick () { local buf highlight style=back-quoted-argument-unclosed style_end local -i arg1=$1 end_ i=$1 last offset=0 start subshell_has_end=0 local -a highlight_zone highlights offsets reply=() last=$(( arg1 + 1 )) while i=$arg[(ib:i+1:)[\\\\\`]] do if (( i > $#arg )) then buf=$buf$arg[last,i] offsets[i-arg1-offset]='' (( i-- )) subshell_has_end=$(( has_end && (start_pos + i == len) )) break fi if [[ $arg[i] == '\' ]] then (( i++ )) if [[ $arg[i] == ('$'|'`'|'\') ]] then buf=$buf$arg[last,i-2] (( offset++ )) offsets[i-arg1-offset]=$offset else buf=$buf$arg[last,i-1] fi else style=back-quoted-argument style_end=back-quoted-argument-delimiter buf=$buf$arg[last,i-1] offsets[i-arg1-offset]='' break fi last=$i done _zsh_highlight_main_highlighter_highlight_list 0 '' $subshell_has_end $buf for start end_ highlight in $reply do start=$(( start_pos + arg1 + start + offsets[(Rb:start:)?*] )) end_=$(( start_pos + arg1 + end_ + offsets[(Rb:end_:)?*] )) highlights+=($start $end_ $highlight) if [[ $highlight == back-quoted-argument-unclosed && $style == back-quoted-argument ]] then style_end=unknown-token fi done reply=($(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style $(( start_pos + arg1 - 1 )) $(( start_pos + arg1 )) back-quoted-argument-delimiter $highlights) if (( $#style_end )) then reply+=($(( start_pos + i - 1)) $(( start_pos + i )) $style_end) fi REPLY=$i } _zsh_highlight_main_highlighter_highlight_dollar_quote () { local -a match mbegin mend local MATCH integer MBEGIN MEND local i j k style local AA integer c reply=() for ((i = $1 + 2 ; i <= $#arg ; i += 1 )) do (( j = i + start_pos - 1 )) (( k = j + 1 )) case "$arg[$i]" in ("'") break ;; ("\\") style=back-dollar-quoted-argument for ((c = i + 1 ; c <= $#arg ; c += 1 )) do [[ "$arg[$c]" != ([0-9xXuUa-fA-F]) ]] && break done AA=$arg[$i+1,$c-1] if [[ "$AA" =~ "^(x|X)[0-9a-fA-F]{1,2}" || "$AA" =~ "^[0-7]{1,3}" || "$AA" =~ "^u[0-9a-fA-F]{1,4}" || "$AA" =~ "^U[0-9a-fA-F]{1,8}" ]] then (( k += $#MATCH )) (( i += $#MATCH )) else if (( $#arg > $i+1 )) && [[ $arg[$i+1] == [xXuU] ]] then style=unknown-token fi (( k += 1 )) (( i += 1 )) fi ;; (*) continue ;; esac reply+=($j $k $style) done if [[ $arg[i] == "'" ]] then style=dollar-quoted-argument else (( i-- )) style=dollar-quoted-argument-unclosed fi reply=($(( start_pos + $1 - 1 )) $(( start_pos + i )) $style $reply) REPLY=$i } _zsh_highlight_main_highlighter_highlight_double_quote () { local -a breaks match mbegin mend saved_reply local MATCH integer last_break=$(( start_pos + $1 - 1 )) MBEGIN MEND local i j k ret style reply=() for ((i = $1 + 1 ; i <= $#arg ; i += 1 )) do (( j = i + start_pos - 1 )) (( k = j + 1 )) case "$arg[$i]" in ('"') break ;; ('`') saved_reply=($reply) _zsh_highlight_main_highlighter_highlight_backtick $i (( i = REPLY )) reply=($saved_reply $reply) continue ;; ('$') style=dollar-double-quoted-argument if [[ ${arg:$i} =~ ^([A-Za-z_][A-Za-z0-9_]*|[0-9]+) ]] then (( k += $#MATCH )) (( i += $#MATCH )) elif [[ ${arg:$i} =~ ^[{]([A-Za-z_][A-Za-z0-9_]*|[0-9]+)[}] ]] then (( k += $#MATCH )) (( i += $#MATCH )) elif [[ $arg[i+1] == '$' ]] then (( k += 1 )) (( i += 1 )) elif [[ $arg[i+1] == [-#*@?] ]] then (( k += 1 )) (( i += 1 )) elif [[ $arg[i+1] == $'\x28' ]] then saved_reply=($reply) if [[ $arg[i+2] == $'\x28' ]] && _zsh_highlight_main_highlighter_highlight_arithmetic $i then (( i = REPLY )) reply=($saved_reply $reply) continue fi breaks+=($last_break $(( start_pos + i - 1 ))) (( i += 2 )) _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] ret=$? (( i += REPLY )) last_break=$(( start_pos + i )) reply=($saved_reply $j $(( start_pos + i )) command-substitution-quoted $j $(( j + 2 )) command-substitution-delimiter-quoted $reply) if (( ret == 0 )) then reply+=($(( start_pos + i - 1 )) $(( start_pos + i )) command-substitution-delimiter-quoted) fi continue else continue fi ;; ("\\") style=back-double-quoted-argument if [[ \\\`\"\$${histchars[1]} == *$arg[$i+1]* ]] then (( k += 1 )) (( i += 1 )) else continue fi ;; ($histchars[1]) if [[ $arg[i+1] != ('='|$'\x28'|$'\x7b'|[[:blank:]]) ]] then style=history-expansion else continue fi ;; (*) continue ;; esac reply+=($j $k $style) done if [[ $arg[i] == '"' ]] then style=double-quoted-argument else (( i-- )) style=double-quoted-argument-unclosed fi (( last_break != start_pos + i )) && breaks+=($last_break $(( start_pos + i ))) saved_reply=($reply) reply=() for 1 2 in $breaks do (( $1 != $2 )) && reply+=($1 $2 $style) done reply+=($saved_reply) REPLY=$i } _zsh_highlight_main_highlighter_highlight_list () { integer start_pos end_pos=0 buf_offset=$1 has_end=$3 local alias_style param_style last_arg arg buf=$4 highlight_glob=true saw_assignment=false style local in_array_assignment=false integer in_param=0 len=$#buf local -a in_alias match mbegin mend list_highlights local -A seen_alias readonly parameter_name_pattern='([A-Za-z_][A-Za-z0-9_]*|[0-9]+)' list_highlights=() local braces_stack=$2 local this_word next_word=':start::start_of_pipeline:' integer in_redirection local proc_buf="$buf" local -a args if [[ $zsyh_user_options[interactivecomments] == on ]] then args=(${(zZ+c+)buf}) else args=(${(z)buf}) fi if [[ $braces_stack == 'S' ]] && (( $+args[3] && ! $+args[4] )) && [[ $args[3] == $'\x29' ]] && [[ $args[1] == *'<'* ]] && _zsh_highlight_main__is_redirection $args[1] then highlight_glob=false fi while (( $#args )) do last_arg=$arg arg=$args[1] shift args if (( $#in_alias )) then (( in_alias[1]-- )) in_alias=($in_alias[$in_alias[(i)<1->],-1]) if (( $#in_alias == 0 )) then seen_alias=() _zsh_highlight_main_add_region_highlight $start_pos $end_pos $alias_style else () { local alias_name for alias_name in ${(k)seen_alias[(R)<$#in_alias->]} do seen_alias=("${(@kv)seen_alias[(I)^$alias_name]}") done } fi fi if (( in_param )) then (( in_param-- )) if (( in_param == 0 )) then _zsh_highlight_main_add_region_highlight $start_pos $end_pos $param_style param_style="" fi fi if (( in_redirection == 0 )) then this_word=$next_word next_word=':regular:' elif (( !in_param )) then (( --in_redirection )) fi style=unknown-token if [[ $this_word == *':start:'* ]] then in_array_assignment=false if [[ $arg == 'noglob' ]] then highlight_glob=false fi fi if (( $#in_alias == 0 && in_param == 0 )) then [[ "$proc_buf" = (#b)(#s)(''([ $'\t']|[\\]$'\n')#)(?|)* ]] integer offset="${#match[1]}" (( start_pos = end_pos + offset )) (( end_pos = start_pos + $#arg )) [[ $arg == ';' && ${match[3]} == $'\n' ]] && arg=$'\n' proc_buf="${proc_buf[offset + $#arg + 1,len]}" fi if [[ $zsyh_user_options[interactivecomments] == on && $arg[1] == $histchars[3] ]] then if [[ $this_word == *(':regular:'|':start:')* ]] then style=comment else style=unknown-token fi _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style in_redirection=1 continue fi if [[ $this_word == *':start:'* ]] && ! (( in_redirection )) then _zsh_highlight_main__type "$arg" "$(( ! ${+seen_alias[$arg]} ))" local res="$REPLY" if [[ $res == "alias" ]] then if [[ $arg == ?*=* ]] then _zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token continue fi seen_alias[$arg]=$#in_alias _zsh_highlight_main__resolve_alias $arg local -a alias_args if [[ $zsyh_user_options[interactivecomments] == on ]] then alias_args=(${(zZ+c+)REPLY}) else alias_args=(${(z)REPLY}) fi args=($alias_args $args) if (( $#in_alias == 0 )) then alias_style=alias else (( in_alias[1]-- )) fi in_alias=($(($#alias_args + 1)) $in_alias) (( in_redirection++ )) continue else _zsh_highlight_main_highlighter_expand_path $arg _zsh_highlight_main__type "$REPLY" 0 res="$REPLY" fi fi if _zsh_highlight_main__is_redirection $arg then if (( in_redirection == 1 )) then _zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token else in_redirection=2 _zsh_highlight_main_add_region_highlight $start_pos $end_pos redirection fi continue elif [[ $arg == '{'${~parameter_name_pattern}'}' ]] && _zsh_highlight_main__is_redirection $args[1] then in_redirection=3 _zsh_highlight_main_add_region_highlight $start_pos $end_pos named-fd continue fi if (( ! in_param )) && _zsh_highlight_main_highlighter__try_expand_parameter "$arg" then () { local -a words words=("${reply[@]}") if (( $#words == 0 )) && (( ! in_redirection )) then (( ++in_redirection )) _zsh_highlight_main_add_region_highlight $start_pos $end_pos comment continue else (( in_param = 1 + $#words )) args=($words $args) arg=$args[1] _zsh_highlight_main__type "$arg" 0 res=$REPLY fi } fi if (( ! in_redirection )) then if [[ $this_word == *':sudo_opt:'* ]] then if [[ -n $flags_with_argument ]] && { if [[ -n $flags_sans_argument ]] then [[ $arg == '-'[$flags_sans_argument]#[$flags_with_argument] ]] else [[ $arg == '-'[$flags_with_argument] ]] fi } then this_word=${this_word//:start:/} next_word=':sudo_arg:' elif [[ -n $flags_with_argument ]] && { if [[ -n $flags_sans_argument ]] then [[ $arg == '-'[$flags_sans_argument]#[$flags_with_argument]* ]] else [[ $arg == '-'[$flags_with_argument]* ]] fi } then this_word=${this_word//:start:/} next_word+=':start:' next_word+=':sudo_opt:' elif [[ -n $flags_sans_argument ]] && [[ $arg == '-'[$flags_sans_argument]# ]] then this_word=':sudo_opt:' next_word+=':start:' next_word+=':sudo_opt:' elif [[ -n $flags_solo ]] && { if [[ -n $flags_sans_argument ]] then [[ $arg == '-'[$flags_sans_argument]#[$flags_solo]* ]] else [[ $arg == '-'[$flags_solo]* ]] fi } then this_word=':sudo_opt:' next_word=':regular:' elif [[ $arg == '-'* ]] then this_word=':sudo_opt:' next_word+=':start:' next_word+=':sudo_opt:' else this_word=${this_word//:sudo_opt:/} fi elif [[ $this_word == *':sudo_arg:'* ]] then next_word+=':sudo_opt:' next_word+=':start:' fi fi if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]] && [[ $braces_stack != *T* || $arg != ('||'|'&&') ]] then if _zsh_highlight_main__stack_pop T || _zsh_highlight_main__stack_pop Q then style=unknown-token elif $in_array_assignment then case $arg in ($'\n') style=commandseparator ;; (';') style=unknown-token ;; (*) style=unknown-token ;; esac elif [[ $this_word == *':regular:'* ]] then style=commandseparator elif [[ $this_word == *':start:'* ]] && [[ $arg == $'\n' ]] then style=commandseparator elif [[ $this_word == *':start:'* ]] && [[ $arg == ';' ]] && (( $#in_alias )) then style=commandseparator else style=unknown-token fi if [[ $arg == $'\n' ]] && $in_array_assignment then next_word=':regular:' elif [[ $arg == ';' ]] && $in_array_assignment then next_word=':regular:' else next_word=':start:' highlight_glob=true saw_assignment=false () { local alias_name for alias_name in ${(k)seen_alias[(R)<$#in_alias->]} do seen_alias=("${(@kv)seen_alias[(I)^$alias_name]}") done } if [[ $arg != '|' && $arg != '|&' ]] then next_word+=':start_of_pipeline:' fi fi elif ! (( in_redirection)) && [[ $this_word == *':always:'* && $arg == 'always' ]] then style=reserved-word highlight_glob=true saw_assignment=false next_word=':start::start_of_pipeline:' elif ! (( in_redirection)) && [[ $this_word == *':start:'* ]] then if (( ${+precommand_options[$arg]} )) && _zsh_highlight_main__is_runnable $arg then style=precommand () { set -- "${(@s.:.)precommand_options[$arg]}" flags_with_argument=$1 flags_sans_argument=$2 flags_solo=$3 } next_word=${next_word//:regular:/} next_word+=':sudo_opt:' next_word+=':start:' if [[ $arg == 'exec' || $arg == 'env' ]] then next_word+=':regular:' fi else case $res in (reserved) style=reserved-word case $arg in (time|nocorrect) next_word=${next_word//:regular:/} next_word+=':start:' ;; ($'\x7b') braces_stack='Y'"$braces_stack" ;; ($'\x7d') _zsh_highlight_main__stack_pop 'Y' reserved-word if [[ $style == reserved-word ]] then next_word+=':always:' fi ;; ($'\x5b\x5b') braces_stack='T'"$braces_stack" ;; ('do') braces_stack='D'"$braces_stack" ;; ('done') _zsh_highlight_main__stack_pop 'D' reserved-word ;; ('if') braces_stack=':?'"$braces_stack" ;; ('then') _zsh_highlight_main__stack_pop ':' reserved-word ;; ('elif') if [[ ${braces_stack[1]} == '?' ]] then braces_stack=':'"$braces_stack" else style=unknown-token fi ;; ('else') if [[ ${braces_stack[1]} == '?' ]] then : else style=unknown-token fi ;; ('fi') _zsh_highlight_main__stack_pop '?' ;; ('foreach') braces_stack='$'"$braces_stack" ;; ('end') _zsh_highlight_main__stack_pop '$' reserved-word ;; ('repeat') in_redirection=2 this_word=':start::regular:' ;; ('!') if [[ $this_word != *':start_of_pipeline:'* ]] then style=unknown-token else fi ;; esac if $saw_assignment && [[ $style != unknown-token ]] then style=unknown-token fi ;; ('suffix alias') style=suffix-alias ;; ('global alias') style=global-alias ;; (alias) : ;; (builtin) style=builtin [[ $arg == $'\x5b' ]] && braces_stack='Q'"$braces_stack" ;; (function) style=function ;; (command) style=command ;; (hashed) style=hashed-command ;; (none) if (( ! in_param )) && _zsh_highlight_main_highlighter_check_assign then _zsh_highlight_main_add_region_highlight $start_pos $end_pos assign local i=$(( arg[(i)=] + 1 )) saw_assignment=true if [[ $arg[i] == '(' ]] then in_array_assignment=true _zsh_highlight_main_add_region_highlight start_pos+i-1 start_pos+i reserved-word else next_word+=':start:' if (( i <= $#arg )) then () { local highlight_glob=false [[ $zsyh_user_options[globassign] == on ]] && highlight_glob=true _zsh_highlight_main_highlighter_highlight_argument $i } fi fi continue elif (( ! in_param )) && [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )) then style=history-expansion elif (( ! in_param )) && [[ $arg[0,1] == $histchars[2,2] ]] then style=history-expansion elif (( ! in_param )) && ! $saw_assignment && [[ $arg[1,2] == '((' ]] then _zsh_highlight_main_add_region_highlight $start_pos $((start_pos + 2)) reserved-word if [[ $arg[-2,-1] == '))' ]] then _zsh_highlight_main_add_region_highlight $((end_pos - 2)) $end_pos reserved-word fi continue elif (( ! in_param )) && [[ $arg == '()' ]] then style=reserved-word elif (( ! in_param )) && ! $saw_assignment && [[ $arg == $'\x28' ]] then style=reserved-word braces_stack='R'"$braces_stack" elif (( ! in_param )) && [[ $arg == $'\x29' ]] then if _zsh_highlight_main__stack_pop 'S' then REPLY=$start_pos reply=($list_highlights) return 0 fi _zsh_highlight_main__stack_pop 'R' reserved-word else if _zsh_highlight_main_highlighter_check_path $arg 1 then style=$REPLY else style=unknown-token fi fi ;; (*) _zsh_highlight_main_add_region_highlight $start_pos $end_pos arg0_$res continue ;; esac fi if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW:#"$arg"} ]] then next_word=':start::start_of_pipeline:' fi elif _zsh_highlight_main__is_global_alias "$arg" then style=global-alias else case $arg in ($'\x29') if $in_array_assignment then _zsh_highlight_main_add_region_highlight $start_pos $end_pos assign _zsh_highlight_main_add_region_highlight $start_pos $end_pos reserved-word in_array_assignment=false next_word+=':start:' continue elif (( in_redirection )) then style=unknown-token else if _zsh_highlight_main__stack_pop 'S' then REPLY=$start_pos reply=($list_highlights) return 0 fi _zsh_highlight_main__stack_pop 'R' reserved-word fi ;; ($'\x28\x29') if (( in_redirection )) || $in_array_assignment then style=unknown-token else if [[ $zsyh_user_options[multifuncdef] == on ]] || false then next_word+=':start::start_of_pipeline:' fi style=reserved-word fi ;; (*) if false then elif [[ $arg = $'\x7d' ]] && $right_brace_is_recognised_everywhere then if (( in_redirection )) || $in_array_assignment then style=unknown-token else _zsh_highlight_main__stack_pop 'Y' reserved-word if [[ $style == reserved-word ]] then next_word+=':always:' fi fi elif [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )) then style=history-expansion elif [[ $arg == $'\x5d\x5d' ]] && _zsh_highlight_main__stack_pop 'T' reserved-word then : elif [[ $arg == $'\x5d' ]] && _zsh_highlight_main__stack_pop 'Q' builtin then : else _zsh_highlight_main_highlighter_highlight_argument 1 $(( 1 != in_redirection )) continue fi ;; esac fi _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style done (( $#in_alias )) && in_alias=() _zsh_highlight_main_add_region_highlight $start_pos $end_pos $alias_style (( in_param == 1 )) && in_param=0 _zsh_highlight_main_add_region_highlight $start_pos $end_pos $param_style [[ "$proc_buf" = (#b)(#s)(([[:space:]]|\\$'\n')#) ]] REPLY=$(( end_pos + ${#match[1]} - 1 )) reply=($list_highlights) return $(( $#braces_stack > 0 )) } _zsh_highlight_main_highlighter_highlight_path_separators () { local pos style_pathsep style_pathsep=$1_pathseparator reply=() [[ -z "$ZSH_HIGHLIGHT_STYLES[$style_pathsep]" || "$ZSH_HIGHLIGHT_STYLES[$1]" == "$ZSH_HIGHLIGHT_STYLES[$style_pathsep]" ]] && return 0 for ((pos = start_pos; $pos <= end_pos; pos++ )) do if [[ $BUFFER[pos] == / ]] then reply+=($((pos - 1)) $pos $style_pathsep) fi done } _zsh_highlight_main_highlighter_highlight_single_quote () { local arg1=$1 i q=\' style i=$arg[(ib:arg1+1:)$q] reply=() if [[ $zsyh_user_options[rcquotes] == on ]] then while [[ $arg[i+1] == "'" ]] do reply+=($(( start_pos + i - 1 )) $(( start_pos + i + 1 )) rc-quote) (( i++ )) i=$arg[(ib:i+1:)$q] done fi if [[ $arg[i] == "'" ]] then style=single-quoted-argument else (( i-- )) style=single-quoted-argument-unclosed fi reply=($(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style $reply) REPLY=$i } _zsh_highlight_pattern_highlighter_loop () { local buf="$1" pat="$2" local -a match mbegin mend local MATCH integer MBEGIN MEND if [[ "$buf" == (#b)(*)(${~pat})* ]] then region_highlight+=("$((mbegin[2] - 1)) $mend[2] $ZSH_HIGHLIGHT_PATTERNS[$pat], memo=zsh-syntax-highlighting") "$0" "$match[1]" "$pat" return $? fi } _zsh_highlight_preexec_hook () { typeset -g _ZSH_HIGHLIGHT_PRIOR_BUFFER= typeset -gi _ZSH_HIGHLIGHT_PRIOR_CURSOR= } _zsh_highlight_regexp_highlighter_loop () { local buf="$1" pat="$2" integer OFFSET=0 local MATCH integer MBEGIN MEND local -a match mbegin mend while true do [[ "$buf" =~ "$pat" ]] || return region_highlight+=("$((MBEGIN - 1 + OFFSET)) $((MEND + OFFSET)) $ZSH_HIGHLIGHT_REGEXP[$pat], memo=zsh-syntax-highlighting") buf="$buf[$(($MEND+1)),-1]" OFFSET=$((MEND+OFFSET)) done } _zsocket () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zstyle () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _ztodo () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } _zypper () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } add-zle-hook-widget () { # undefined builtin autoload -XU } add-zsh-hook () { emulate -L zsh local -a hooktypes hooktypes=(chpwd precmd preexec periodic zshaddhistory zshexit zsh_directory_name) local usage="Usage: add-zsh-hook hook function\nValid hooks are:\n $hooktypes" local opt local -a autoopts integer del list help while getopts "dDhLUzk" opt do case $opt in (d) del=1 ;; (D) del=2 ;; (h) help=1 ;; (L) list=1 ;; ([Uzk]) autoopts+=(-$opt) ;; (*) return 1 ;; esac done shift $(( OPTIND - 1 )) if (( list )) then typeset -mp "(${1:-${(@j:|:)hooktypes}})_functions" return $? elif (( help || $# != 2 || ${hooktypes[(I)$1]} == 0 )) then print -u$(( 2 - help )) $usage return $(( 1 - help )) fi local hook="${1}_functions" local fn="$2" if (( del )) then if (( ${(P)+hook} )) then if (( del == 2 )) then set -A $hook ${(P)hook:#${~fn}} else set -A $hook ${(P)hook:#$fn} fi if (( ! ${(P)#hook} )) then unset $hook fi fi else if (( ${(P)+hook} )) then if (( ${${(P)hook}[(I)$fn]} == 0 )) then typeset -ga $hook set -A $hook ${(P)hook} $fn fi else typeset -ga $hook set -A $hook $fn fi autoload $autoopts -- $fn fi } alias_value () { (( $+aliases[$1] )) && echo $aliases[$1] } azure_prompt_info () { return 1 } bashcompinit () { # undefined builtin autoload -XUz } bracketed-paste-magic () { # undefined builtin autoload -XUz } build-fzf-tab-module () { { pushd -q $FZF_TAB_HOME/modules if -ftb-build-module $@ then print -P "%F{green}%BThe module has been built successfully. Please restart zsh to apply it.%f%b" else print -P -u2 "%F{red}%BThe module building has failed. See the output above for details.%f%b" return 1 fi } always { popd -q } } bzr_prompt_info () { local bzr_branch bzr_branch=$(bzr nick 2>/dev/null) || return if [[ -n "$bzr_branch" ]] then local bzr_dirty="" if [[ -n $(bzr status 2>/dev/null) ]] then bzr_dirty=" %{$fg[red]%}*%{$reset_color%}" fi printf "%s%s%s%s" "$ZSH_THEME_SCM_PROMPT_PREFIX" "bzr::${bzr_branch##*:}" "$bzr_dirty" "$ZSH_THEME_GIT_PROMPT_SUFFIX" fi } chruby_prompt_info () { return 1 } clipcopy () { unfunction clipcopy clippaste detect-clipboard || true "$0" "$@" } clippaste () { unfunction clipcopy clippaste detect-clipboard || true "$0" "$@" } colors () { emulate -L zsh typeset -Ag color colour color=(00 none 01 bold 02 faint 22 normal 03 italic 23 no-italic 04 underline 24 no-underline 05 blink 25 no-blink 07 reverse 27 no-reverse 08 conceal 28 no-conceal 30 black 40 bg-black 31 red 41 bg-red 32 green 42 bg-green 33 yellow 43 bg-yellow 34 blue 44 bg-blue 35 magenta 45 bg-magenta 36 cyan 46 bg-cyan 37 white 47 bg-white 39 default 49 bg-default) local k for k in ${(k)color} do color[${color[$k]}]=$k done for k in ${color[(I)3?]} do color[fg-${color[$k]}]=$k done for k in grey gray do color[$k]=${color[black]} color[fg-$k]=${color[$k]} color[bg-$k]=${color[bg-black]} done colour=(${(kv)color}) local lc=$'\e[' rc=m typeset -Hg reset_color bold_color reset_color="$lc${color[none]}$rc" bold_color="$lc${color[bold]}$rc" typeset -AHg fg fg_bold fg_no_bold for k in ${(k)color[(I)fg-*]} do fg[${k#fg-}]="$lc${color[$k]}$rc" fg_bold[${k#fg-}]="$lc${color[bold]};${color[$k]}$rc" fg_no_bold[${k#fg-}]="$lc${color[normal]};${color[$k]}$rc" done typeset -AHg bg bg_bold bg_no_bold for k in ${(k)color[(I)bg-*]} do bg[${k#bg-}]="$lc${color[$k]}$rc" bg_bold[${k#bg-}]="$lc${color[bold]};${color[$k]}$rc" bg_no_bold[${k#bg-}]="$lc${color[normal]};${color[$k]}$rc" done } command_not_found_handler () { if [[ "$1" != "mise" && "$1" != "mise-"* ]] && /Users/steve.briggs/.local/bin/mise hook-not-found -s zsh -- "$1" then _mise_hook "$@" elif [ -n "$(declare -f _command_not_found_handler)" ] then _command_not_found_handler "$@" else echo "zsh: command not found: $1" >&2 return 127 fi } compadd () { local -A apre hpre dscrs _oad _mesg local -a isfile _opts __ expl zparseopts -a _opts P:=apre p:=hpre d:=dscrs X+:=expl O:=_oad A:=_oad D:=_oad f=isfile i: S: s: I: x:=_mesg r: R: W: F: M+: E: q e Q n U C J:=__ V:=__ a=__ l=__ k=__ o::=__ 1=__ 2=__ _ftb_curcontext=${curcontext#:} if (( $#_oad != 0 || ! IN_FZF_TAB )) || { -ftb-zstyle -m disabled-on "any" } || ( { -ftb-zstyle -m disabled-on "files" } && [[ -n $isfile ]] ) then builtin compadd "$@" return fi local -a __hits __dscr if (( $#dscrs == 1 )) then __dscr=("${(@P)${(v)dscrs}}") fi builtin compadd -A __hits -D __dscr "$@" local ret=$? if (( $#__hits == 0 )) then if is-at-least 5.9 && (( $#_mesg != 0 )) then builtin compadd -x $_mesg fi return $ret fi expl=$expl[2] [[ -n $expl ]] && _ftb_groups+=$expl local -a keys=(apre hpre PREFIX SUFFIX IPREFIX ISUFFIX) local key expanded __tmp_value=$'<\0>' for key in $keys do expanded=${(P)key} if [[ -n $expanded ]] then __tmp_value+=$'\0'$key$'\0'$expanded fi done if [[ -n $expl ]] then __tmp_value+=$'\0group\0'$_ftb_groups[(ie)$expl] fi if [[ -n $isfile ]] then __tmp_value+=$'\0realdir\0'${${(Qe)~${:-$IPREFIX$hpre}}} fi _opts+=("${(@kv)apre}" "${(@kv)hpre}" $isfile) __tmp_value+=$'\0args\0'${(pj:\1:)_opts} if (( $+builtins[fzf-tab-compcap-generate] )) then fzf-tab-compcap-generate __hits __dscr __tmp_value else local dscr word i for i in {1..$#__hits} do word=$__hits[i] dscr=$__dscr[i] if [[ -n $dscr ]] then dscr=${dscr//$'\n'} elif [[ -n $word ]] then dscr=$word fi _ftb_compcap+=$dscr$'\2'$__tmp_value$'\0word\0'$word done fi builtin compadd "$@" } compaudit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } compdef () { local opt autol type func delete eval new i ret=0 cmd svc local -a match mbegin mend emulate -L zsh setopt extendedglob if (( ! $# )) then print -u2 "$0: I need arguments" return 1 fi while getopts "anpPkKde" opt do case "$opt" in (a) autol=yes ;; (n) new=yes ;; ([pPkK]) if [[ -n "$type" ]] then print -u2 "$0: type already set to $type" return 1 fi if [[ "$opt" = p ]] then type=pattern elif [[ "$opt" = P ]] then type=postpattern elif [[ "$opt" = K ]] then type=widgetkey else type=key fi ;; (d) delete=yes ;; (e) eval=yes ;; esac done shift OPTIND-1 if (( ! $# )) then print -u2 "$0: I need arguments" return 1 fi if [[ -z "$delete" ]] then if [[ -z "$eval" ]] && [[ "$1" = *\=* ]] then while (( $# )) do if [[ "$1" = *\=* ]] then cmd="${1%%\=*}" svc="${1#*\=}" func="$_comps[${_services[(r)$svc]:-$svc}]" [[ -n ${_services[$svc]} ]] && svc=${_services[$svc]} [[ -z "$func" ]] && func="${${_patcomps[(K)$svc][1]}:-${_postpatcomps[(K)$svc][1]}}" if [[ -n "$func" ]] then _comps[$cmd]="$func" _services[$cmd]="$svc" else print -u2 "$0: unknown command or service: $svc" ret=1 fi else print -u2 "$0: invalid argument: $1" ret=1 fi shift done return ret fi func="$1" [[ -n "$autol" ]] && autoload -rUz "$func" shift case "$type" in (widgetkey) while [[ -n $1 ]] do if [[ $# -lt 3 ]] then print -u2 "$0: compdef -K requires " return 1 fi [[ $1 = _* ]] || 1="_$1" [[ $2 = .* ]] || 2=".$2" [[ $2 = .menu-select ]] && zmodload -i zsh/complist zle -C "$1" "$2" "$func" if [[ -n $new ]] then bindkey "$3" | IFS=$' \t' read -A opt [[ $opt[-1] = undefined-key ]] && bindkey "$3" "$1" else bindkey "$3" "$1" fi shift 3 done ;; (key) if [[ $# -lt 2 ]] then print -u2 "$0: missing keys" return 1 fi if [[ $1 = .* ]] then [[ $1 = .menu-select ]] && zmodload -i zsh/complist zle -C "$func" "$1" "$func" else [[ $1 = menu-select ]] && zmodload -i zsh/complist zle -C "$func" ".$1" "$func" fi shift for i do if [[ -n $new ]] then bindkey "$i" | IFS=$' \t' read -A opt [[ $opt[-1] = undefined-key ]] || continue fi bindkey "$i" "$func" done ;; (*) while (( $# )) do if [[ "$1" = -N ]] then type=normal elif [[ "$1" = -p ]] then type=pattern elif [[ "$1" = -P ]] then type=postpattern else case "$type" in (pattern) if [[ $1 = (#b)(*)=(*) ]] then _patcomps[$match[1]]="=$match[2]=$func" else _patcomps[$1]="$func" fi ;; (postpattern) if [[ $1 = (#b)(*)=(*) ]] then _postpatcomps[$match[1]]="=$match[2]=$func" else _postpatcomps[$1]="$func" fi ;; (*) if [[ "$1" = *\=* ]] then cmd="${1%%\=*}" svc=yes else cmd="$1" svc= fi if [[ -z "$new" || -z "${_comps[$1]}" ]] then _comps[$cmd]="$func" [[ -n "$svc" ]] && _services[$cmd]="${1#*\=}" fi ;; esac fi shift done ;; esac else case "$type" in (pattern) unset "_patcomps[$^@]" ;; (postpattern) unset "_postpatcomps[$^@]" ;; (key) print -u2 "$0: cannot restore key bindings" return 1 ;; (*) unset "_comps[$^@]" ;; esac fi } compdump () { # undefined builtin autoload -XUz } compgen () { local opts prefix suffix job OPTARG OPTIND ret=1 local -a name res results jids local -A shortopts emulate -L sh setopt kshglob noshglob braceexpand nokshautoload shortopts=(a alias b builtin c command d directory e export f file g group j job k keyword u user v variable) while getopts "o:A:G:C:F:P:S:W:X:abcdefgjkuv" name do case $name in ([abcdefgjkuv]) OPTARG="${shortopts[$name]}" ;& (A) case $OPTARG in (alias) results+=("${(k)aliases[@]}") ;; (arrayvar) results+=("${(k@)parameters[(R)array*]}") ;; (binding) results+=("${(k)widgets[@]}") ;; (builtin) results+=("${(k)builtins[@]}" "${(k)dis_builtins[@]}") ;; (command) results+=("${(k)commands[@]}" "${(k)aliases[@]}" "${(k)builtins[@]}" "${(k)functions[@]}" "${(k)reswords[@]}") ;; (directory) setopt bareglobqual results+=(${IPREFIX}${PREFIX}*${SUFFIX}${ISUFFIX}(N-/)) setopt nobareglobqual ;; (disabled) results+=("${(k)dis_builtins[@]}") ;; (enabled) results+=("${(k)builtins[@]}") ;; (export) results+=("${(k)parameters[(R)*export*]}") ;; (file) setopt bareglobqual results+=(${IPREFIX}${PREFIX}*${SUFFIX}${ISUFFIX}(N)) setopt nobareglobqual ;; (function) results+=("${(k)functions[@]}") ;; (group) emulate zsh _groups -U -O res emulate sh setopt kshglob noshglob braceexpand results+=("${res[@]}") ;; (hostname) emulate zsh _hosts -U -O res emulate sh setopt kshglob noshglob braceexpand results+=("${res[@]}") ;; (job) results+=("${savejobtexts[@]%% *}") ;; (keyword) results+=("${(k)reswords[@]}") ;; (running) jids=("${(@k)savejobstates[(R)running*]}") for job in "${jids[@]}" do results+=(${savejobtexts[$job]%% *}) done ;; (stopped) jids=("${(@k)savejobstates[(R)suspended*]}") for job in "${jids[@]}" do results+=(${savejobtexts[$job]%% *}) done ;; (setopt | shopt) results+=("${(k)options[@]}") ;; (signal) results+=("SIG${^signals[@]}") ;; (user) results+=("${(k)userdirs[@]}") ;; (variable) results+=("${(k)parameters[@]}") ;; (helptopic) ;; esac ;; (F) COMPREPLY=() local -a args args=("${words[0]}" "${@[-1]}" "${words[CURRENT-2]}") () { typeset -h words $OPTARG "${args[@]}" } results+=("${COMPREPLY[@]}") ;; (G) setopt nullglob results+=(${~OPTARG}) unsetopt nullglob ;; (W) results+=(${(Q)~=OPTARG}) ;; (C) results+=($(eval $OPTARG)) ;; (P) prefix="$OPTARG" ;; (S) suffix="$OPTARG" ;; (X) if [[ ${OPTARG[0]} = '!' ]] then results=("${(M)results[@]:#${OPTARG#?}}") else results=("${results[@]:#$OPTARG}") fi ;; esac done print -l -r -- "$prefix${^results[@]}$suffix" } compinit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } compinstall () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } complete () { emulate -L zsh local args void cmd print remove args=("$@") zparseopts -D -a void o: A: G: W: C: F: P: S: X: a b c d e f g j k u v p=print r=remove if [[ -n $print ]] then printf 'complete %2$s %1$s\n' "${(@kv)_comps[(R)_bash*]#* }" elif [[ -n $remove ]] then for cmd do unset "_comps[$cmd]" done else compdef _bash_complete\ ${(j. .)${(q)args[1,-1-$#]}} "$@" fi } conda_prompt_info () { return 1 } d () { if [[ -n $1 ]] then dirs "$@" else dirs -v | head -n 10 fi } default () { (( $+parameters[$1] )) && return 0 typeset -g "$1"="$2" && return 3 } detect-clipboard () { emulate -L zsh if [[ "${OSTYPE}" == darwin* ]] && (( ${+commands[pbcopy]} )) && (( ${+commands[pbpaste]} )) then clipcopy () { cat "${1:-/dev/stdin}" | pbcopy } clippaste () { pbpaste } elif [[ "${OSTYPE}" == (cygwin|msys)* ]] then clipcopy () { cat "${1:-/dev/stdin}" > /dev/clipboard } clippaste () { cat /dev/clipboard } elif (( $+commands[clip.exe] )) && (( $+commands[powershell.exe] )) then clipcopy () { cat "${1:-/dev/stdin}" | clip.exe } clippaste () { powershell.exe -noprofile -command Get-Clipboard } elif [ -n "${WAYLAND_DISPLAY:-}" ] && (( ${+commands[wl-copy]} )) && (( ${+commands[wl-paste]} )) then clipcopy () { cat "${1:-/dev/stdin}" | wl-copy &> /dev/null &| } clippaste () { wl-paste --no-newline } elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xsel]} )) then clipcopy () { cat "${1:-/dev/stdin}" | xsel --clipboard --input } clippaste () { xsel --clipboard --output } elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xclip]} )) then clipcopy () { cat "${1:-/dev/stdin}" | xclip -selection clipboard -in &> /dev/null &| } clippaste () { xclip -out -selection clipboard } elif (( ${+commands[lemonade]} )) then clipcopy () { cat "${1:-/dev/stdin}" | lemonade copy } clippaste () { lemonade paste } elif (( ${+commands[doitclient]} )) then clipcopy () { cat "${1:-/dev/stdin}" | doitclient wclip } clippaste () { doitclient wclip -r } elif (( ${+commands[win32yank]} )) then clipcopy () { cat "${1:-/dev/stdin}" | win32yank -i } clippaste () { win32yank -o } elif [[ $OSTYPE == linux-android* ]] && (( $+commands[termux-clipboard-set] )) then clipcopy () { cat "${1:-/dev/stdin}" | termux-clipboard-set } clippaste () { termux-clipboard-get } elif [ -n "${TMUX:-}" ] && (( ${+commands[tmux]} )) then clipcopy () { tmux load-buffer -w "${1:--}" } clippaste () { tmux save-buffer - } else _retry_clipboard_detection_or_fail () { local clipcmd="${1}" shift if detect-clipboard then "${clipcmd}" "$@" else print "${clipcmd}: Platform $OSTYPE not supported or xclip/xsel not installed" >&2 return 1 fi } clipcopy () { _retry_clipboard_detection_or_fail clipcopy "$@" } clippaste () { _retry_clipboard_detection_or_fail clippaste "$@" } return 1 fi } diff () { command diff --color "$@" } disable-fzf-tab () { emulate -L zsh -o extended_glob (( $+_ftb_orig_widget )) || return 0 bindkey '^I' $_ftb_orig_widget case $_ftb_orig_list_grouped in (0) zstyle ':completion:*' list-grouped false ;; (1) zstyle ':completion:*' list-grouped true ;; (2) zstyle -d ':completion:*' list-grouped ;; esac unset _ftb_orig_widget _ftb_orig_list_groupded unfunction compadd 2> /dev/null functions[_main_complete]=$functions[_ftb__main_complete] functions[_approximate]=$functions[_ftb__approximate] } down-line-or-beginning-search () { # undefined builtin autoload -XU } edit-command-line () { # undefined builtin autoload -XU } enable-fzf-tab () { emulate -L zsh -o extended_glob (( ! $+_ftb_orig_widget )) || disable-fzf-tab typeset -g _ftb_orig_widget="${${$(builtin bindkey '^I')##* }:-expand-or-complete}" if (( ! $+widgets[.fzf-tab-orig-$_ftb_orig_widget] )) then local compinit_widgets=(complete-word delete-char-or-list expand-or-complete expand-or-complete-prefix list-choices menu-complete menu-expand-or-complete reverse-menu-complete) if [[ $widgets[$_ftb_orig_widget] == builtin && $compinit_widgets[(Ie)$_ftb_orig_widget] != 0 ]] then zle -C .fzf-tab-orig-$_ftb_orig_widget .$_ftb_orig_widget _main_complete else zle -A $_ftb_orig_widget .fzf-tab-orig-$_ftb_orig_widget fi fi zstyle -t ':completion:*' list-grouped false typeset -g _ftb_orig_list_grouped=$? zstyle ':completion:*' list-grouped false bindkey -M emacs '^I' fzf-tab-complete bindkey -M viins '^I' fzf-tab-complete bindkey -M emacs '^X.' fzf-tab-debug bindkey -M viins '^X.' fzf-tab-debug autoload +X -Uz _main_complete _approximate functions[compadd]=$functions[-ftb-compadd] functions[_ftb__main_complete]=$functions[_main_complete] _main_complete () { -ftb-complete "$@" } functions[_ftb__approximate]=$functions[_approximate] _approximate () { (( ! IN_FZF_TAB )) || unfunction compadd _ftb__approximate (( ! IN_FZF_TAB )) || functions[compadd]=$functions[-ftb-compadd] } } env_default () { [[ ${parameters[$1]} = *-export* ]] && return 0 export "$1=$2" && return 3 } fr () { FIND="$1" REPLACE="$2" FILTER="$3" if [ -z "${FIND}" ] || [ -z "${REPLACE}" ] then echo "ERR: must include two parameters for find and replace" >&2 fr_usage return 1 fi if command -v rg 2>&1 > /dev/null then if [ -z "${FILTER}" ] then rg --hidden --glob '!.git/' -l "$FIND" | xargs sed -i "s/${FIND}/${REPLACE}/g" else rg --hidden --glob '!.git/' -l "$FIND" | rg --hidden --glob '!.git/' -i "$FILTER" | xargs sed -i "s/${FIND}/${REPLACE}/g" fi else if [ -z "${FILTER}" ] then grep --color=auto --color -l "$FIND" | xargs sed -i "s/${FIND}/${REPLACE}/g" else grep --color=auto --color -l "$FIND" | grep --color=auto --color -i "$FILTER" | xargs sed -i "s/${FIND}/${REPLACE}/g" fi fi } ftb-switch-group () { # undefined builtin autoload -XUz } ftb-tmux-popup () { # undefined builtin autoload -XUz } fzf-tab-complete () { local -i _ftb_continue=1 _ftb_continue_last=0 _ftb_accept=0 ret=0 echoti civis > /dev/tty 2> /dev/null while (( _ftb_continue )) do local _ftb_choices=() _ftb_compcap=() _ftb_finish=0 _ftb_continue=0 local IN_FZF_TAB=1 { zle .fzf-tab-orig-$_ftb_orig_widget || ret=$? if (( ! ret && ! _ftb_finish )) then zle _fzf-tab-apply || ret=$? fi } always { IN_FZF_TAB=0 } if (( _ftb_continue )) then zle .split-undo zle .reset-prompt zle -R zle fzf-tab-dummy fi done echoti cnorm > /dev/tty 2> /dev/null zle .redisplay (( _ftb_accept )) && zle .accept-line return $ret } fzf-tab-debug () { (( $+_ftb_debug_cnt )) || typeset -gi _ftb_debug_cnt local tmp=${TMPPREFIX:-/tmp/zsh}-$$-fzf-tab-$(( ++_ftb_debug_cnt )).log local -i debug_fd=-1 IN_FZF_TAB=1 { exec {debug_fd}>&2 2>| $tmp local -a debug_indent debug_indent=('%'{3..20}'(e. .)') local PROMPT4 PS4="${(j::)debug_indent}+%N:%i> " functions -t -- -ftb-complete _fzf-tab-apply fzf-tab-complete { echo $ZSH_NAME $ZSH_VERSION echo fzf-tab: $(-ftb-version) typeset -p FZF_DEFAULT_OPTS echo $commands[fzf] $(fzf --version) } >&2 zle fzf-tab-complete if (( debug_fd != -1 )) then zle -M "fzf-tab-debug: Trace output left in $tmp" fi } always { functions +t -- -ftb-complete _fzf-tab-apply fzf-tab-complete (( debug_fd != -1 )) && exec 2>&$debug_fd {debug_fd}>&- } } fzf-tab-dummy () { } fzf-tab-lscolors::from-mode () { emulate -L zsh setopt cbases octalzeroes extendedglob [[ -z $2 ]] && return 1 local -i reg=0 local -a codes local -i st_mode=$(($2)) case $(( st_mode & 0170000 )) in ($(( 0140000 ))) codes=($modecolors[so]) ;; ($(( 0120000 ))) if ! (($+3)) then REPLY=$modecolors[or] elif [[ $modecolors[ln] = target ]] then "$0" "$1" "${@:3}" else REPLY=$modecolors[ln] fi return ;; ($(( 0100000 ))) codes=() reg=1 ;; ($(( 0060000 ))) codes=($modecolors[bd]) ;; ($(( 0040000 ))) codes=($modecolors[di]) ;; ($(( 0020000 ))) codes=($modecolors[cd]) ;; ($(( 0010000 ))) codes=($modecolors[pi]) ;; esac (( st_mode & 04000 )) && codes+=($modecolors[su]) (( st_mode & 02000 )) && codes+=($modecolors[sg]) (( ! reg )) && case $(( st_mode & 01002 )) in ($(( 01000 ))) codes+=($modecolors[st]) ;; ($(( 00002 ))) codes+=($modecolors[ow]) ;; ($(( 01002 ))) codes+=($modecolors[tw]) ;; esac if (( ! $#codes )) then (( st_mode & 0111 )) && codes+=($modecolors[ex]) fi [[ -n ${REPLY::=${(j:;:)codes}} ]] } fzf-tab-lscolors::from-name () { emulate -L zsh setopt extendedglob [[ -n ${REPLY::=$namecolors[(k)$1]} ]] } fzf-tab-lscolors::init () { emulate -L zsh local LS_COLORS=${1:-${LS_COLORS:-$LSCOLORS}} typeset -gA namecolors=(${(@s:=:)${(@s.:.)LS_COLORS}:#[[:alpha:]][[:alpha:]]=*}) typeset -gA modecolors=(${(@Ms:=:)${(@s.:.)LS_COLORS}:#[[:alpha:]][[:alpha:]]=*}) } fzf-tab-lscolors::match-by () { emulate -L zsh setopt extendedglob cbases octalzeroes local arg REPLY name=$1 pfx=${0%::match-by} shift if ! [[ -v namecolors && -v modecolors ]] then local -A namecolors modecolors ${pfx}::init fi if [[ ${1:l} = (g|global) ]] then shift else local -a stat lstat declare -ga reply=() fi zmodload -F zsh/stat b:zstat for arg do case ${arg[1]:l} in (n | name) ${pfx}::from-name $name reply+=("$REPLY") ;; (l | lstat) (($#lstat)) || zstat -A lstat -L $name || return 1 if ((lstat[3] & 0170000 )) then (($#stat)) || zstat -A stat $name 2> /dev/null fi ${pfx}::from-mode "$name" "$lstat[3]" $stat[3] if [[ -n $REPLY || ${2[1]} = L ]] then reply+=("$REPLY") else "$0" "$name" g n fi ;; (s | stat) (($#stat)) || zstat -A stat $name || return 1 ${pfx}::from-mode $name $stat[3] reply+=("$REPLY") if [[ -n $REPLY || ${arg[1]} = S ]] then reply+=("$REPLY") else "$0" "$name" g n fi ;; (f | follow) (($#lstat)) || zstat -A lstat -L $name || return 1 reply+=("$lstat[14]") ;; (a | all) "$0" "$name" g ${${${arg[1]%a}:+L}:-l} reply+=($lstat[14]) if [[ -n $lstat[14] ]] then if [[ -e $name ]] then "$0" "$name" g ${${${arg[1]%a}:+S}:-s} else reply+=($reply[-2]) fi fi ;; (*) return 2 ;; esac done } gbda () { git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2> /dev/null } gbds () { local default_branch=$(git_main_branch) (( ! $? )) || default_branch=$(git_develop_branch) git for-each-ref refs/heads/ "--format=%(refname:short)" | while read branch do local merge_base=$(git merge-base $default_branch $branch) if [[ $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) = -* ]] then git branch -D $branch fi done } gccd () { setopt localoptions extendedglob local repo="${${@[(r)(ssh://*|git://*|ftp(s)#://*|http(s)#://*|*@*)(.git/#)#]}:-$_}" command git clone --recurse-submodules "$@" || return [[ -d "$_" ]] && cd "$_" || cd "${${repo:t}%.git/#}" } gdnolock () { git diff "$@" ":(exclude)package-lock.json" ":(exclude)*.lock" } gdv () { git diff -w "$@" | view - } getent () { if [[ $1 = hosts ]] then sed 's/#.*//' /etc/$1 | grep -w $2 elif [[ $2 = <-> ]] then grep ":$2:[^:]*$" /etc/$1 else grep "^$2:" /etc/$1 fi } ggf () { local b [[ $# != 1 ]] && b="$(git_current_branch)" git push --force origin "${b:-$1}" } ggfl () { local b [[ $# != 1 ]] && b="$(git_current_branch)" git push --force-with-lease origin "${b:-$1}" } ggl () { if [[ $# != 0 ]] && [[ $# != 1 ]] then git pull origin "${*}" else local b [[ $# == 0 ]] && b="$(git_current_branch)" git pull origin "${b:-$1}" fi } ggp () { if [[ $# != 0 ]] && [[ $# != 1 ]] then git push origin "${*}" else local b [[ $# == 0 ]] && b="$(git_current_branch)" git push origin "${b:-$1}" fi } ggpnp () { if [[ $# == 0 ]] then ggl && ggp else ggl "${*}" && ggp "${*}" fi } ggu () { local b [[ $# != 1 ]] && b="$(git_current_branch)" git pull --rebase origin "${b:-$1}" } git_commits_ahead () { if __git_prompt_git rev-parse --git-dir &> /dev/null then local commits="$(__git_prompt_git rev-list --count @{upstream}..HEAD 2>/dev/null)" if [[ -n "$commits" && "$commits" != 0 ]] then echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX" fi fi } git_commits_behind () { if __git_prompt_git rev-parse --git-dir &> /dev/null then local commits="$(__git_prompt_git rev-list --count HEAD..@{upstream} 2>/dev/null)" if [[ -n "$commits" && "$commits" != 0 ]] then echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX" fi fi } git_current_branch () { local ref ref=$(__git_prompt_git symbolic-ref --quiet HEAD 2> /dev/null) local ret=$? if [[ $ret != 0 ]] then [[ $ret == 128 ]] && return ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) || return fi echo ${ref#refs/heads/} } git_current_user_email () { __git_prompt_git config user.email 2> /dev/null } git_current_user_name () { __git_prompt_git config user.name 2> /dev/null } git_develop_branch () { command git rev-parse --git-dir &> /dev/null || return local branch for branch in dev devel develop development do if command git show-ref -q --verify refs/heads/$branch then echo $branch return 0 fi done echo develop return 1 } git_main_branch () { command git rev-parse --git-dir &> /dev/null || return local remote ref for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default,stable,master} do if command git show-ref -q --verify $ref then echo ${ref:t} return 0 fi done for remote in origin upstream do ref=$(command git rev-parse --abbrev-ref $remote/HEAD 2>/dev/null) if [[ $ref == $remote/* ]] then echo ${ref#"$remote/"} return 0 fi done echo master return 1 } git_previous_branch () { local ref ref=$(__git_prompt_git rev-parse --quiet --symbolic-full-name @{-1} 2> /dev/null) local ret=$? if [[ $ret != 0 ]] || [[ -z $ref ]] then return fi echo ${ref#refs/heads/} } git_prompt_ahead () { if [[ -n "$(__git_prompt_git rev-list origin/$(git_current_branch)..HEAD 2> /dev/null)" ]] then echo "$ZSH_THEME_GIT_PROMPT_AHEAD" fi } git_prompt_behind () { if [[ -n "$(__git_prompt_git rev-list HEAD..origin/$(git_current_branch) 2> /dev/null)" ]] then echo "$ZSH_THEME_GIT_PROMPT_BEHIND" fi } git_prompt_info () { if [[ -n "${_OMZ_ASYNC_OUTPUT[_omz_git_prompt_info]}" ]] then echo -n "${_OMZ_ASYNC_OUTPUT[_omz_git_prompt_info]}" fi } git_prompt_long_sha () { local SHA SHA=$(__git_prompt_git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" } git_prompt_remote () { if [[ -n "$(__git_prompt_git show-ref origin/$(git_current_branch) 2> /dev/null)" ]] then echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS" else echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING" fi } git_prompt_short_sha () { local SHA SHA=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" } git_prompt_status () { if [[ -n "${_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]}" ]] then echo -n "${_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]}" fi } git_remote_status () { local remote ahead behind git_remote_status git_remote_status_detailed remote=${$(__git_prompt_git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} if [[ -n ${remote} ]] then ahead=$(__git_prompt_git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) behind=$(__git_prompt_git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) if [[ $ahead -eq 0 ]] && [[ $behind -eq 0 ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE" elif [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}" elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE" git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE" git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" fi if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX${remote:gs/%/%%}$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX" fi echo $git_remote_status fi } git_repo_name () { local repo_path if repo_path="$(__git_prompt_git rev-parse --show-toplevel 2>/dev/null)" && [[ -n "$repo_path" ]] then echo ${repo_path:t} fi } google () { open "https://www.google.com/search?q=`echo "${@}" | urlencode`" } grename () { if [[ -z "$1" || -z "$2" ]] then echo "Usage: $0 old_branch new_branch" return 1 fi git branch -m "$1" "$2" if git push origin :"$1" then git push --set-upstream origin "$2" fi } gunwipall () { local _commit=$(git log --grep='--wip--' --invert-grep --max-count=1 --format=format:%H) if [[ "$_commit" != "$(git rev-parse HEAD)" ]] then git reset $_commit || return 1 fi } handle_completion_insecurities () { local -aU insecure_dirs insecure_dirs=(${(f@):-"$(compaudit 2>/dev/null)"}) [[ -z "${insecure_dirs}" ]] && return print "[oh-my-zsh] Insecure completion-dependent directories detected:" ls -ld "${(@)insecure_dirs}" cat < ]] do (( ++ver_cnt > ${#version} )) && return 0 if [[ ${version[ver_cnt]} = *[0-9][^0-9]* ]] then order=(${version[ver_cnt]} ${min_ver[ver_cnt]}) if [[ ${version[ver_cnt]} = <->* ]] then [[ $order != ${${(On)order}} ]] && return 1 else [[ $order != ${${(O)order}} ]] && return 1 fi [[ $order[1] != $order[2] ]] && return 0 fi part=${version[ver_cnt]##*[^0-9]} done while true do (( ++min_cnt > ${#min_ver} )) && return 0 [[ ${min_ver[min_cnt]} = <-> ]] && break done (( part > min_ver[min_cnt] )) && return 0 (( part < min_ver[min_cnt] )) && return 1 part='' done } is_plugin () { local base_dir=$1 local name=$2 builtin test -f $base_dir/plugins/$name/$name.plugin.zsh || builtin test -f $base_dir/plugins/$name/_$name } is_theme () { local base_dir=$1 local name=$2 builtin test -f $base_dir/$name.zsh-theme } jenv_prompt_info () { return 1 } kj () { kubectl "$@" -o json | jq } kjx () { kubectl "$@" -o json | fx } kres () { kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S) } kutil () { for host in $(kubectl get nodes --no-headers | cut -d' ' -f1) do echo "$host - $(kubectl get nodes -o jsonpath='{.metadata.labels.topology\.kubernetes\.io/zone}' $host)" kubecolor describe node "$host" | grep --color=auto --color Allocated -A 5 | grep --color=auto --color -ve Event -ve Allocated -ve percent -ve -- echo done } ky () { kubectl "$@" -o yaml | yh } mise () { local command command="${1:-}" if [ "$#" = 0 ] then command /Users/steve.briggs/.local/bin/mise return fi shift case "$command" in (deactivate | shell | sh) if [[ ! " $@ " =~ " --help " ]] && [[ ! " $@ " =~ " -h " ]] then eval "$(command /Users/steve.briggs/.local/bin/mise "$command" "$@")" return $? fi ;; esac command /Users/steve.briggs/.local/bin/mise "$command" "$@" } mkcd () { mkdir -p $@ && cd ${@:$#} } nvm_prompt_info () { which nvm &> /dev/null || return local nvm_prompt=${$(nvm current)#v} echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt:gs/%/%%}${ZSH_THEME_NVM_PROMPT_SUFFIX}" } omz () { setopt localoptions noksharrays [[ $# -gt 0 ]] || { _omz::help return 1 } local command="$1" shift (( ${+functions[_omz::$command]} )) || { _omz::help return 1 } _omz::$command "$@" } omz_diagnostic_dump () { emulate -L zsh builtin echo "Generating diagnostic dump; please be patient..." local thisfcn=omz_diagnostic_dump local -A opts local opt_verbose opt_noverbose opt_outfile local timestamp=$(date +%Y%m%d-%H%M%S) local outfile=omz_diagdump_$timestamp.txt builtin zparseopts -A opts -D -- "v+=opt_verbose" "V+=opt_noverbose" local verbose n_verbose=${#opt_verbose} n_noverbose=${#opt_noverbose} (( verbose = 1 + n_verbose - n_noverbose )) if [[ ${#*} > 0 ]] then opt_outfile=$1 fi if [[ ${#*} > 1 ]] then builtin echo "$thisfcn: error: too many arguments" >&2 return 1 fi if [[ -n "$opt_outfile" ]] then outfile="$opt_outfile" fi _omz_diag_dump_one_big_text &> "$outfile" if [[ $? != 0 ]] then builtin echo "$thisfcn: error while creating diagnostic dump; see $outfile for details" fi builtin echo builtin echo Diagnostic dump file created at: "$outfile" builtin echo builtin echo To share this with OMZ developers, post it as a gist on GitHub builtin echo at "https://gist.github.com" and share the link to the gist. builtin echo builtin echo "WARNING: This dump file contains all your zsh and omz configuration files," builtin echo "so don't share it publicly if there's sensitive information in them." builtin echo } omz_history () { local clear list stamp REPLY zparseopts -E -D c=clear l=list f=stamp E=stamp i=stamp t:=stamp if [[ -n "$clear" ]] then print -nu2 "This action will irreversibly delete your command history. Are you sure? [y/N] " builtin read -E [[ "$REPLY" = [yY] ]] || return 0 print -nu2 >| "$HISTFILE" fc -p "$HISTFILE" print -u2 History file deleted. elif [[ $# -eq 0 ]] then builtin fc "${stamp[@]}" -l 1 else builtin fc "${stamp[@]}" -l "$@" fi } omz_termsupport_cwd () { setopt localoptions unset local URL_HOST URL_PATH URL_HOST="$(omz_urlencode -P $HOST)" || return 1 URL_PATH="$(omz_urlencode -P $PWD)" || return 1 [[ -z "$KONSOLE_PROFILE_NAME" && -z "$KONSOLE_DBUS_SESSION" ]] || URL_HOST="" printf "\e]7;file://%s%s\e\\" "${URL_HOST}" "${URL_PATH}" } omz_termsupport_precmd () { [[ "${DISABLE_AUTO_TITLE:-}" != true ]] || return 0 title "$ZSH_THEME_TERM_TAB_TITLE_IDLE" "$ZSH_THEME_TERM_TITLE_IDLE" } omz_termsupport_preexec () { [[ "${DISABLE_AUTO_TITLE:-}" != true ]] || return 0 emulate -L zsh setopt extended_glob local -a cmdargs cmdargs=("${(z)2}") if [[ "${cmdargs[1]}" = fg ]] then local job_id jobspec="${cmdargs[2]#%}" case "$jobspec" in (<->) job_id=${jobspec} ;; ("" | % | +) job_id=${(k)jobstates[(r)*:+:*]} ;; (-) job_id=${(k)jobstates[(r)*:-:*]} ;; ([?]*) job_id=${(k)jobtexts[(r)*${(Q)jobspec}*]} ;; (*) job_id=${(k)jobtexts[(r)${(Q)jobspec}*]} ;; esac if [[ -n "${jobtexts[$job_id]}" ]] then 1="${jobtexts[$job_id]}" 2="${jobtexts[$job_id]}" fi fi local CMD="${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%}" local LINE="${2:gs/%/%%}" title "$CMD" "%100>...>${LINE}%<<" } omz_urldecode () { emulate -L zsh local encoded_url=$1 local caller_encoding=$langinfo[CODESET] local LC_ALL=C export LC_ALL local tmp=${encoded_url:gs/+/ /} tmp=${tmp:gs/\\/\\\\/} tmp=${tmp:gs/%/\\x/} local decoded="$(printf -- "$tmp")" local -a safe_encodings safe_encodings=(UTF-8 utf8 US-ASCII) if [[ -z ${safe_encodings[(r)$caller_encoding]} ]] then decoded=$(echo -E "$decoded" | iconv -f UTF-8 -t $caller_encoding) if [[ $? != 0 ]] then echo "Error converting string from UTF-8 to $caller_encoding" >&2 return 1 fi fi echo -E "$decoded" } omz_urlencode () { emulate -L zsh setopt norematchpcre local -a opts zparseopts -D -E -a opts r m P local in_str="$@" local url_str="" local spaces_as_plus if [[ -z $opts[(r)-P] ]] then spaces_as_plus=1 fi local str="$in_str" local encoding=$langinfo[CODESET] local safe_encodings safe_encodings=(UTF-8 utf8 US-ASCII) if [[ -z ${safe_encodings[(r)$encoding]} ]] then str=$(echo -E "$str" | iconv -f $encoding -t UTF-8) if [[ $? != 0 ]] then echo "Error converting string from $encoding to UTF-8" >&2 return 1 fi fi local i byte ord LC_ALL=C export LC_ALL local reserved=';/?:@&=+$,' local mark='_.!~*''()-' local dont_escape="[A-Za-z0-9" if [[ -z $opts[(r)-r] ]] then dont_escape+=$reserved fi if [[ -z $opts[(r)-m] ]] then dont_escape+=$mark fi dont_escape+="]" local url_str="" for ((i = 1; i <= ${#str}; ++i )) do byte="$str[i]" if [[ "$byte" =~ "$dont_escape" ]] then url_str+="$byte" else if [[ "$byte" == " " && -n $spaces_as_plus ]] then url_str+="+" elif [[ "$PREFIX" = *com.termux* ]] then url_str+="$byte" else ord=$(( [##16] #byte )) url_str+="%$ord" fi fi done echo -E "$url_str" } open_command () { local open_cmd case "$OSTYPE" in (darwin*) open_cmd='open' ;; (cygwin*) open_cmd='cygstart' ;; (linux*) [[ "$(uname -r)" != *icrosoft* ]] && open_cmd='nohup xdg-open' || { open_cmd='cmd.exe /c start ""' [[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 } [[ "$1" = (http|https)://* ]] && { 1="$(echo "$1" | sed -E 's/([&|()<>^])/^\1/g')" || return 1 } } ;; (msys*) open_cmd='start ""' ;; (*) echo "Platform $OSTYPE not supported" return 1 ;; esac if [[ -n "$BROWSER" && "$1" = (http|https)://* ]] then "$BROWSER" "$@" return fi ${=open_cmd} "$@" &> /dev/null } parse_git_dirty () { local STATUS local -a FLAGS FLAGS=('--porcelain') if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-dirty)" != "1" ]] then if [[ "${DISABLE_UNTRACKED_FILES_DIRTY:-}" == "true" ]] then FLAGS+='--untracked-files=no' fi case "${GIT_STATUS_IGNORE_SUBMODULES:-}" in (git) ;; (*) FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}" ;; esac STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -n 1) fi if [[ -n $STATUS ]] then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" fi } prompt_starship_precmd () { STARSHIP_CMD_STATUS=$? STARSHIP_PIPE_STATUS=(${pipestatus[@]}) if (( ${+STARSHIP_START_TIME} )) then __starship_get_time && (( STARSHIP_DURATION = STARSHIP_CAPTURED_TIME - STARSHIP_START_TIME )) unset STARSHIP_START_TIME else unset STARSHIP_DURATION STARSHIP_CMD_STATUS STARSHIP_PIPE_STATUS fi STARSHIP_JOBS_COUNT=${#jobstates} } prompt_starship_preexec () { __starship_get_time && STARSHIP_START_TIME=$STARSHIP_CAPTURED_TIME } pyenv_prompt_info () { return 1 } rbenv_prompt_info () { return 1 } regexp-replace () { argv=("$1" "$2" "$3") 4=0 [[ -o re_match_pcre ]] && 4=1 emulate -L zsh local MATCH MBEGIN MEND local -a match mbegin mend if (( $4 )) then zmodload zsh/pcre || return 2 pcre_compile -- "$2" && pcre_study || return 2 4=0 6= local ZPCRE_OP while pcre_match -b -n $4 -- "${(P)1}" do 5=${(e)3} argv+=(${(s: :)ZPCRE_OP} "$5") 4=$((argv[-2] + (argv[-3] == argv[-2]))) done (($# > 6)) || return set +o multibyte 5= 6=1 for 2 3 4 in "$@[7,-1]" do 5+=${(P)1[$6,$2]}$4 6=$(($3 + 1)) done 5+=${(P)1[$6,-1]} else 4=${(P)1} while [[ -n $4 ]] do if [[ $4 =~ $2 ]] then 5+=${4[1,MBEGIN-1]}${(e)3} if ((MEND < MBEGIN)) then ((MEND++)) 5+=${4[1]} fi 4=${4[MEND+1,-1]} 6=1 else break fi done [[ -n $6 ]] || return 5+=$4 fi eval $1=\$5 } ruby_prompt_info () { echo "$(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info)" } rvm_prompt_info () { [ -f $HOME/.rvm/bin/rvm-prompt ] || return 1 local rvm_prompt rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${=ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null) [[ -z "${rvm_prompt}" ]] && return 1 echo "${ZSH_THEME_RUBY_PROMPT_PREFIX}${rvm_prompt:gs/%/%%}${ZSH_THEME_RUBY_PROMPT_SUFFIX}" } spectrum_bls () { setopt localoptions nopromptsubst local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris} for code in {000..255} do print -P -- "$code: ${BG[$code]}${ZSH_SPECTRUM_TEXT}%{$reset_color%}" done } spectrum_ls () { setopt localoptions nopromptsubst local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris} for code in {000..255} do print -P -- "$code: ${FG[$code]}${ZSH_SPECTRUM_TEXT}%{$reset_color%}" done } starship_zle-keymap-select () { zle reset-prompt } svn_prompt_info () { return 1 } take () { if [[ $1 =~ ^(https?|ftp).*\.(tar\.(gz|bz2|xz)|tgz)$ ]] then takeurl "$1" elif [[ $1 =~ ^(https?|ftp).*\.(zip)$ ]] then takezip "$1" elif [[ $1 =~ ^([A-Za-z0-9]\+@|https?|git|ssh|ftps?|rsync).*\.git/?$ ]] then takegit "$1" else takedir "$@" fi } takedir () { mkdir -p $@ && cd ${@:$#} } takegit () { git clone "$1" cd "$(basename ${1%%.git})" } takeurl () { local data thedir data="$(mktemp)" curl -L "$1" > "$data" tar xf "$data" thedir="$(tar tf "$data" | head -n 1)" rm "$data" cd "$thedir" } takezip () { local data thedir data="$(mktemp)" curl -L "$1" > "$data" unzip "$data" -d "./" thedir="$(unzip -l "$data" | awk 'NR==4 {print $4}' | sed 's/\/.*//')" rm "$data" cd "$thedir" } tf_prompt_info () { return 1 } tfdocs () { open "https://registry.terraform.io/search/providers?q=`echo "${@}" | urlencode`" } title () { setopt localoptions nopromptsubst [[ -n "${INSIDE_EMACS:-}" && "$INSIDE_EMACS" != vterm ]] && return : ${2=$1} case "$TERM" in (cygwin | xterm* | putty* | rxvt* | konsole* | ansi | mlterm* | alacritty* | st* | foot* | contour* | wezterm*) print -Pn "\e]2;${2:q}\a" print -Pn "\e]1;${1:q}\a" ;; (screen* | tmux*) print -Pn "\ek${1:q}\e\\" ;; (*) if [[ "$TERM_PROGRAM" == "iTerm.app" ]] then print -Pn "\e]2;${2:q}\a" print -Pn "\e]1;${1:q}\a" else if (( ${+terminfo[fsl]} && ${+terminfo[tsl]} )) then print -Pn "${terminfo[tsl]}$1${terminfo[fsl]}" fi fi ;; esac } toggle-fzf-tab () { emulate -L zsh -o extended_glob if (( $+_ftb_orig_widget )) then disable-fzf-tab else enable-fzf-tab fi } try_alias_value () { alias_value "$1" || echo "$1" } uninstall_oh_my_zsh () { command env ZSH="$ZSH" sh "$ZSH/tools/uninstall.sh" } up-line-or-beginning-search () { # undefined builtin autoload -XU } upgrade_oh_my_zsh () { echo "${fg[yellow]}Note: \`$0\` is deprecated. Use \`omz update\` instead.$reset_color" >&2 omz update } url-quote-magic () { # undefined builtin autoload -XUz } urldecode () { python -c "import sys; from urllib.parse import unquote; print(unquote(sys.stdin.read()), end='')" } urlencode () { python -c "import sys; from urllib.parse import quote_plus; print(quote_plus(sys.stdin.read()))" } vi_mode_prompt_info () { return 1 } virtualenv_prompt_info () { return 1 } work_in_progress () { command git -c log.showSignature=false log -n 1 2> /dev/null | grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox,.venv,venv} -q -- "--wip--" && echo "WIP!!" } zle-line-finish () { echoti rmkx } zle-line-init () { echoti smkx } zrecompile () { setopt localoptions extendedglob noshwordsplit noksharrays local opt check quiet zwc files re file pre ret map tmp mesg pats tmp=() while getopts ":tqp" opt do case $opt in (t) check=yes ;; (q) quiet=yes ;; (p) pats=yes ;; (*) if [[ -n $pats ]] then tmp=($tmp $OPTARG) else print -u2 zrecompile: bad option: -$OPTARG return 1 fi ;; esac done shift OPTIND-${#tmp}-1 if [[ -n $check ]] then ret=1 else ret=0 fi if [[ -n $pats ]] then local end num while (( $# )) do end=$argv[(i)--] if [[ end -le $# ]] then files=($argv[1,end-1]) shift end else files=($argv) argv=() fi tmp=() map=() OPTIND=1 while getopts :MR opt $files do case $opt in ([MR]) map=(-$opt) ;; (*) tmp=($tmp $files[OPTIND]) ;; esac done shift OPTIND-1 files (( $#files )) || continue files=($files[1] ${files[2,-1]:#*(.zwc|~)}) (( $#files )) || continue zwc=${files[1]%.zwc}.zwc shift 1 files (( $#files )) || files=(${zwc%.zwc}) if [[ -f $zwc ]] then num=$(zcompile -t $zwc | wc -l) if [[ num-1 -ne $#files ]] then re=yes else re= for file in $files do if [[ $file -nt $zwc ]] then re=yes break fi done fi else re=yes fi if [[ -n $re ]] then if [[ -n $check ]] then [[ -z $quiet ]] && print $zwc needs re-compilation ret=0 else [[ -z $quiet ]] && print -n "re-compiling ${zwc}: " if [[ -z "$quiet" ]] && { [[ ! -f $zwc ]] || mv -f $zwc ${zwc}.old } && zcompile $map $tmp $zwc $files then print succeeded elif ! { { [[ ! -f $zwc ]] || mv -f $zwc ${zwc}.old } && zcompile $map $tmp $zwc $files 2> /dev/null } then [[ -z $quiet ]] && print "re-compiling ${zwc}: failed" ret=1 fi fi fi done return ret fi if (( $# )) then argv=(${^argv}/*.zwc(ND) ${^argv}.zwc(ND) ${(M)argv:#*.zwc}) else argv=(${^fpath}/*.zwc(ND) ${^fpath}.zwc(ND) ${(M)fpath:#*.zwc}) fi argv=(${^argv%.zwc}.zwc) for zwc do files=(${(f)"$(zcompile -t $zwc)"}) if [[ $files[1] = *\(mapped\)* ]] then map=-M mesg='succeeded (old saved)' else map=-R mesg=succeeded fi if [[ $zwc = */* ]] then pre=${zwc%/*}/ else pre= fi if [[ $files[1] != *$ZSH_VERSION ]] then re=yes else re= fi files=(${pre}${^files[2,-1]:#/*} ${(M)files[2,-1]:#/*}) [[ -z $re ]] && for file in $files do if [[ $file -nt $zwc ]] then re=yes break fi done if [[ -n $re ]] then if [[ -n $check ]] then [[ -z $quiet ]] && print $zwc needs re-compilation ret=0 else [[ -z $quiet ]] && print -n "re-compiling ${zwc}: " tmp=(${^files}(N)) if [[ $#tmp -ne $#files ]] then [[ -z $quiet ]] && print 'failed (missing files)' ret=1 else if [[ -z "$quiet" ]] && mv -f $zwc ${zwc}.old && zcompile $map $zwc $files then print $mesg elif ! { mv -f $zwc ${zwc}.old && zcompile $map $zwc $files 2> /dev/null } then [[ -z $quiet ]] && print "re-compiling ${zwc}: failed" ret=1 fi fi fi fi done return ret } zsh_stats () { fc -l 1 | awk '{ CMD[$2]++; count++; } END { for (a in CMD) print CMD[a] " " CMD[a]*100/count "% " a }' | grep -v "./" | sort -nr | head -n 20 | column -c3 -s " " -t | nl } VCS_INFO_formats () { setopt localoptions noksharrays NO_shwordsplit local msg tmp local -i i local -A hook_com hook_com=(action "$1" action_orig "$1" branch "$2" branch_orig "$2" base "$3" base_orig "$3" staged "$4" staged_orig "$4" unstaged "$5" unstaged_orig "$5" revision "$6" revision_orig "$6" misc "$7" misc_orig "$7" vcs "${vcs}" vcs_orig "${vcs}") hook_com[base-name]="${${hook_com[base]}:t}" hook_com[base-name_orig]="${hook_com[base-name]}" hook_com[subdir]="$(VCS_INFO_reposub ${hook_com[base]})" hook_com[subdir_orig]="${hook_com[subdir]}" : vcs_info-patch-9b9840f2-91e5-4471-af84-9e9a0dc68c1b for tmp in base base-name branch misc revision subdir do hook_com[$tmp]="${hook_com[$tmp]//\%/%%}" done VCS_INFO_hook 'post-backend' if [[ -n ${hook_com[action]} ]] then zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" actionformats msgs (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b|%a]%u%c-' else zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" formats msgs (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b]%u%c-' fi if [[ -n ${hook_com[staged]} ]] then zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" stagedstr tmp [[ -z ${tmp} ]] && hook_com[staged]='S' || hook_com[staged]=${tmp} fi if [[ -n ${hook_com[unstaged]} ]] then zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" unstagedstr tmp [[ -z ${tmp} ]] && hook_com[unstaged]='U' || hook_com[unstaged]=${tmp} fi if [[ ${quiltmode} != 'standalone' ]] && VCS_INFO_hook "pre-addon-quilt" then local REPLY VCS_INFO_quilt addon hook_com[quilt]="${REPLY}" unset REPLY elif [[ ${quiltmode} == 'standalone' ]] then hook_com[quilt]=${hook_com[misc]} fi (( ${#msgs} > maxexports )) && msgs[$(( maxexports + 1 )),-1]=() for i in {1..${#msgs}} do if VCS_INFO_hook "set-message" $(( $i - 1 )) "${msgs[$i]}" then zformat -f msg ${msgs[$i]} a:${hook_com[action]} b:${hook_com[branch]} c:${hook_com[staged]} i:${hook_com[revision]} m:${hook_com[misc]} r:${hook_com[base-name]} s:${hook_com[vcs]} u:${hook_com[unstaged]} Q:${hook_com[quilt]} R:${hook_com[base]} S:${hook_com[subdir]} msgs[$i]=${msg} else msgs[$i]=${hook_com[message]} fi done hook_com=() backend_misc=() return 0 } __arguments () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } __git_prompt_git () { GIT_OPTIONAL_LOCKS=0 command git "$@" } __starship_get_time () { (( STARSHIP_CAPTURED_TIME = int(rint(EPOCHREALTIME * 1000)) )) } add-zle-hook-widget () { # undefined builtin autoload -XU } add-zsh-hook () { emulate -L zsh local -a hooktypes hooktypes=(chpwd precmd preexec periodic zshaddhistory zshexit zsh_directory_name) local usage="Usage: add-zsh-hook hook function\nValid hooks are:\n $hooktypes" local opt local -a autoopts integer del list help while getopts "dDhLUzk" opt do case $opt in (d) del=1 ;; (D) del=2 ;; (h) help=1 ;; (L) list=1 ;; ([Uzk]) autoopts+=(-$opt) ;; (*) return 1 ;; esac done shift $(( OPTIND - 1 )) if (( list )) then typeset -mp "(${1:-${(@j:|:)hooktypes}})_functions" return $? elif (( help || $# != 2 || ${hooktypes[(I)$1]} == 0 )) then print -u$(( 2 - help )) $usage return $(( 1 - help )) fi local hook="${1}_functions" local fn="$2" if (( del )) then if (( ${(P)+hook} )) then if (( del == 2 )) then set -A $hook ${(P)hook:#${~fn}} else set -A $hook ${(P)hook:#$fn} fi if (( ! ${(P)#hook} )) then unset $hook fi fi else if (( ${(P)+hook} )) then if (( ${${(P)hook}[(I)$fn]} == 0 )) then typeset -ga $hook set -A $hook ${(P)hook} $fn fi else typeset -ga $hook set -A $hook $fn fi autoload $autoopts -- $fn fi } alias_value () { (( $+aliases[$1] )) && echo $aliases[$1] } azure_prompt_info () { return 1 } bashcompinit () { # undefined builtin autoload -XUz } bracketed-paste-magic () { # undefined builtin autoload -XUz } build-fzf-tab-module () { { pushd -q $FZF_TAB_HOME/modules if -ftb-build-module $@ then print -P "%F{green}%BThe module has been built successfully. Please restart zsh to apply it.%f%b" else print -P -u2 "%F{red}%BThe module building has failed. See the output above for details.%f%b" return 1 fi } always { popd -q } } bzr_prompt_info () { local bzr_branch bzr_branch=$(bzr nick 2>/dev/null) || return if [[ -n "$bzr_branch" ]] then local bzr_dirty="" if [[ -n $(bzr status 2>/dev/null) ]] then bzr_dirty=" %{$fg[red]%}*%{$reset_color%}" fi printf "%s%s%s%s" "$ZSH_THEME_SCM_PROMPT_PREFIX" "bzr::${bzr_branch##*:}" "$bzr_dirty" "$ZSH_THEME_GIT_PROMPT_SUFFIX" fi } chruby_prompt_info () { return 1 } clipcopy () { unfunction clipcopy clippaste detect-clipboard || true "$0" "$@" } clippaste () { unfunction clipcopy clippaste detect-clipboard || true "$0" "$@" } colors () { emulate -L zsh typeset -Ag color colour color=(00 none 01 bold 02 faint 22 normal 03 italic 23 no-italic 04 underline 24 no-underline 05 blink 25 no-blink 07 reverse 27 no-reverse 08 conceal 28 no-conceal 30 black 40 bg-black 31 red 41 bg-red 32 green 42 bg-green 33 yellow 43 bg-yellow 34 blue 44 bg-blue 35 magenta 45 bg-magenta 36 cyan 46 bg-cyan 37 white 47 bg-white 39 default 49 bg-default) local k for k in ${(k)color} do color[${color[$k]}]=$k done for k in ${color[(I)3?]} do color[fg-${color[$k]}]=$k done for k in grey gray do color[$k]=${color[black]} color[fg-$k]=${color[$k]} color[bg-$k]=${color[bg-black]} done colour=(${(kv)color}) local lc=$'\e[' rc=m typeset -Hg reset_color bold_color reset_color="$lc${color[none]}$rc" bold_color="$lc${color[bold]}$rc" typeset -AHg fg fg_bold fg_no_bold for k in ${(k)color[(I)fg-*]} do fg[${k#fg-}]="$lc${color[$k]}$rc" fg_bold[${k#fg-}]="$lc${color[bold]};${color[$k]}$rc" fg_no_bold[${k#fg-}]="$lc${color[normal]};${color[$k]}$rc" done typeset -AHg bg bg_bold bg_no_bold for k in ${(k)color[(I)bg-*]} do bg[${k#bg-}]="$lc${color[$k]}$rc" bg_bold[${k#bg-}]="$lc${color[bold]};${color[$k]}$rc" bg_no_bold[${k#bg-}]="$lc${color[normal]};${color[$k]}$rc" done } command_not_found_handler () { if [[ "$1" != "mise" && "$1" != "mise-"* ]] && /Users/steve.briggs/.local/bin/mise hook-not-found -s zsh -- "$1" then _mise_hook "$@" elif [ -n "$(declare -f _command_not_found_handler)" ] then _command_not_found_handler "$@" else echo "zsh: command not found: $1" >&2 return 127 fi } compadd () { local -A apre hpre dscrs _oad _mesg local -a isfile _opts __ expl zparseopts -a _opts P:=apre p:=hpre d:=dscrs X+:=expl O:=_oad A:=_oad D:=_oad f=isfile i: S: s: I: x:=_mesg r: R: W: F: M+: E: q e Q n U C J:=__ V:=__ a=__ l=__ k=__ o::=__ 1=__ 2=__ _ftb_curcontext=${curcontext#:} if (( $#_oad != 0 || ! IN_FZF_TAB )) || { -ftb-zstyle -m disabled-on "any" } || ( { -ftb-zstyle -m disabled-on "files" } && [[ -n $isfile ]] ) then builtin compadd "$@" return fi local -a __hits __dscr if (( $#dscrs == 1 )) then __dscr=("${(@P)${(v)dscrs}}") fi builtin compadd -A __hits -D __dscr "$@" local ret=$? if (( $#__hits == 0 )) then if is-at-least 5.9 && (( $#_mesg != 0 )) then builtin compadd -x $_mesg fi return $ret fi expl=$expl[2] [[ -n $expl ]] && _ftb_groups+=$expl local -a keys=(apre hpre PREFIX SUFFIX IPREFIX ISUFFIX) local key expanded __tmp_value=$'<\0>' for key in $keys do expanded=${(P)key} if [[ -n $expanded ]] then __tmp_value+=$'\0'$key$'\0'$expanded fi done if [[ -n $expl ]] then __tmp_value+=$'\0group\0'$_ftb_groups[(ie)$expl] fi if [[ -n $isfile ]] then __tmp_value+=$'\0realdir\0'${${(Qe)~${:-$IPREFIX$hpre}}} fi _opts+=("${(@kv)apre}" "${(@kv)hpre}" $isfile) __tmp_value+=$'\0args\0'${(pj:\1:)_opts} if (( $+builtins[fzf-tab-compcap-generate] )) then fzf-tab-compcap-generate __hits __dscr __tmp_value else local dscr word i for i in {1..$#__hits} do word=$__hits[i] dscr=$__dscr[i] if [[ -n $dscr ]] then dscr=${dscr//$'\n'} elif [[ -n $word ]] then dscr=$word fi _ftb_compcap+=$dscr$'\2'$__tmp_value$'\0word\0'$word done fi builtin compadd "$@" } compaudit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } compdef () { local opt autol type func delete eval new i ret=0 cmd svc local -a match mbegin mend emulate -L zsh setopt extendedglob if (( ! $# )) then print -u2 "$0: I need arguments" return 1 fi while getopts "anpPkKde" opt do case "$opt" in (a) autol=yes ;; (n) new=yes ;; ([pPkK]) if [[ -n "$type" ]] then print -u2 "$0: type already set to $type" return 1 fi if [[ "$opt" = p ]] then type=pattern elif [[ "$opt" = P ]] then type=postpattern elif [[ "$opt" = K ]] then type=widgetkey else type=key fi ;; (d) delete=yes ;; (e) eval=yes ;; esac done shift OPTIND-1 if (( ! $# )) then print -u2 "$0: I need arguments" return 1 fi if [[ -z "$delete" ]] then if [[ -z "$eval" ]] && [[ "$1" = *\=* ]] then while (( $# )) do if [[ "$1" = *\=* ]] then cmd="${1%%\=*}" svc="${1#*\=}" func="$_comps[${_services[(r)$svc]:-$svc}]" [[ -n ${_services[$svc]} ]] && svc=${_services[$svc]} [[ -z "$func" ]] && func="${${_patcomps[(K)$svc][1]}:-${_postpatcomps[(K)$svc][1]}}" if [[ -n "$func" ]] then _comps[$cmd]="$func" _services[$cmd]="$svc" else print -u2 "$0: unknown command or service: $svc" ret=1 fi else print -u2 "$0: invalid argument: $1" ret=1 fi shift done return ret fi func="$1" [[ -n "$autol" ]] && autoload -rUz "$func" shift case "$type" in (widgetkey) while [[ -n $1 ]] do if [[ $# -lt 3 ]] then print -u2 "$0: compdef -K requires " return 1 fi [[ $1 = _* ]] || 1="_$1" [[ $2 = .* ]] || 2=".$2" [[ $2 = .menu-select ]] && zmodload -i zsh/complist zle -C "$1" "$2" "$func" if [[ -n $new ]] then bindkey "$3" | IFS=$' \t' read -A opt [[ $opt[-1] = undefined-key ]] && bindkey "$3" "$1" else bindkey "$3" "$1" fi shift 3 done ;; (key) if [[ $# -lt 2 ]] then print -u2 "$0: missing keys" return 1 fi if [[ $1 = .* ]] then [[ $1 = .menu-select ]] && zmodload -i zsh/complist zle -C "$func" "$1" "$func" else [[ $1 = menu-select ]] && zmodload -i zsh/complist zle -C "$func" ".$1" "$func" fi shift for i do if [[ -n $new ]] then bindkey "$i" | IFS=$' \t' read -A opt [[ $opt[-1] = undefined-key ]] || continue fi bindkey "$i" "$func" done ;; (*) while (( $# )) do if [[ "$1" = -N ]] then type=normal elif [[ "$1" = -p ]] then type=pattern elif [[ "$1" = -P ]] then type=postpattern else case "$type" in (pattern) if [[ $1 = (#b)(*)=(*) ]] then _patcomps[$match[1]]="=$match[2]=$func" else _patcomps[$1]="$func" fi ;; (postpattern) if [[ $1 = (#b)(*)=(*) ]] then _postpatcomps[$match[1]]="=$match[2]=$func" else _postpatcomps[$1]="$func" fi ;; (*) if [[ "$1" = *\=* ]] then cmd="${1%%\=*}" svc=yes else cmd="$1" svc= fi if [[ -z "$new" || -z "${_comps[$1]}" ]] then _comps[$cmd]="$func" [[ -n "$svc" ]] && _services[$cmd]="${1#*\=}" fi ;; esac fi shift done ;; esac else case "$type" in (pattern) unset "_patcomps[$^@]" ;; (postpattern) unset "_postpatcomps[$^@]" ;; (key) print -u2 "$0: cannot restore key bindings" return 1 ;; (*) unset "_comps[$^@]" ;; esac fi } compdump () { # undefined builtin autoload -XUz } compgen () { local opts prefix suffix job OPTARG OPTIND ret=1 local -a name res results jids local -A shortopts emulate -L sh setopt kshglob noshglob braceexpand nokshautoload shortopts=(a alias b builtin c command d directory e export f file g group j job k keyword u user v variable) while getopts "o:A:G:C:F:P:S:W:X:abcdefgjkuv" name do case $name in ([abcdefgjkuv]) OPTARG="${shortopts[$name]}" ;& (A) case $OPTARG in (alias) results+=("${(k)aliases[@]}") ;; (arrayvar) results+=("${(k@)parameters[(R)array*]}") ;; (binding) results+=("${(k)widgets[@]}") ;; (builtin) results+=("${(k)builtins[@]}" "${(k)dis_builtins[@]}") ;; (command) results+=("${(k)commands[@]}" "${(k)aliases[@]}" "${(k)builtins[@]}" "${(k)functions[@]}" "${(k)reswords[@]}") ;; (directory) setopt bareglobqual results+=(${IPREFIX}${PREFIX}*${SUFFIX}${ISUFFIX}(N-/)) setopt nobareglobqual ;; (disabled) results+=("${(k)dis_builtins[@]}") ;; (enabled) results+=("${(k)builtins[@]}") ;; (export) results+=("${(k)parameters[(R)*export*]}") ;; (file) setopt bareglobqual results+=(${IPREFIX}${PREFIX}*${SUFFIX}${ISUFFIX}(N)) setopt nobareglobqual ;; (function) results+=("${(k)functions[@]}") ;; (group) emulate zsh _groups -U -O res emulate sh setopt kshglob noshglob braceexpand results+=("${res[@]}") ;; (hostname) emulate zsh _hosts -U -O res emulate sh setopt kshglob noshglob braceexpand results+=("${res[@]}") ;; (job) results+=("${savejobtexts[@]%% *}") ;; (keyword) results+=("${(k)reswords[@]}") ;; (running) jids=("${(@k)savejobstates[(R)running*]}") for job in "${jids[@]}" do results+=(${savejobtexts[$job]%% *}) done ;; (stopped) jids=("${(@k)savejobstates[(R)suspended*]}") for job in "${jids[@]}" do results+=(${savejobtexts[$job]%% *}) done ;; (setopt | shopt) results+=("${(k)options[@]}") ;; (signal) results+=("SIG${^signals[@]}") ;; (user) results+=("${(k)userdirs[@]}") ;; (variable) results+=("${(k)parameters[@]}") ;; (helptopic) ;; esac ;; (F) COMPREPLY=() local -a args args=("${words[0]}" "${@[-1]}" "${words[CURRENT-2]}") () { typeset -h words $OPTARG "${args[@]}" } results+=("${COMPREPLY[@]}") ;; (G) setopt nullglob results+=(${~OPTARG}) unsetopt nullglob ;; (W) results+=(${(Q)~=OPTARG}) ;; (C) results+=($(eval $OPTARG)) ;; (P) prefix="$OPTARG" ;; (S) suffix="$OPTARG" ;; (X) if [[ ${OPTARG[0]} = '!' ]] then results=("${(M)results[@]:#${OPTARG#?}}") else results=("${results[@]:#$OPTARG}") fi ;; esac done print -l -r -- "$prefix${^results[@]}$suffix" } compinit () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } compinstall () { # undefined builtin autoload -XUz /usr/share/zsh/5.9/functions } complete () { emulate -L zsh local args void cmd print remove args=("$@") zparseopts -D -a void o: A: G: W: C: F: P: S: X: a b c d e f g j k u v p=print r=remove if [[ -n $print ]] then printf 'complete %2$s %1$s\n' "${(@kv)_comps[(R)_bash*]#* }" elif [[ -n $remove ]] then for cmd do unset "_comps[$cmd]" done else compdef _bash_complete\ ${(j. .)${(q)args[1,-1-$#]}} "$@" fi } conda_prompt_info () { return 1 } d () { if [[ -n $1 ]] then dirs "$@" else dirs -v | head -n 10 fi } default () { (( $+parameters[$1] )) && return 0 typeset -g "$1"="$2" && return 3 } detect-clipboard () { emulate -L zsh if [[ "${OSTYPE}" == darwin* ]] && (( ${+commands[pbcopy]} )) && (( ${+commands[pbpaste]} )) then clipcopy () { cat "${1:-/dev/stdin}" | pbcopy } clippaste () { pbpaste } elif [[ "${OSTYPE}" == (cygwin|msys)* ]] then clipcopy () { cat "${1:-/dev/stdin}" > /dev/clipboard } clippaste () { cat /dev/clipboard } elif (( $+commands[clip.exe] )) && (( $+commands[powershell.exe] )) then clipcopy () { cat "${1:-/dev/stdin}" | clip.exe } clippaste () { powershell.exe -noprofile -command Get-Clipboard } elif [ -n "${WAYLAND_DISPLAY:-}" ] && (( ${+commands[wl-copy]} )) && (( ${+commands[wl-paste]} )) then clipcopy () { cat "${1:-/dev/stdin}" | wl-copy &> /dev/null &| } clippaste () { wl-paste --no-newline } elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xsel]} )) then clipcopy () { cat "${1:-/dev/stdin}" | xsel --clipboard --input } clippaste () { xsel --clipboard --output } elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xclip]} )) then clipcopy () { cat "${1:-/dev/stdin}" | xclip -selection clipboard -in &> /dev/null &| } clippaste () { xclip -out -selection clipboard } elif (( ${+commands[lemonade]} )) then clipcopy () { cat "${1:-/dev/stdin}" | lemonade copy } clippaste () { lemonade paste } elif (( ${+commands[doitclient]} )) then clipcopy () { cat "${1:-/dev/stdin}" | doitclient wclip } clippaste () { doitclient wclip -r } elif (( ${+commands[win32yank]} )) then clipcopy () { cat "${1:-/dev/stdin}" | win32yank -i } clippaste () { win32yank -o } elif [[ $OSTYPE == linux-android* ]] && (( $+commands[termux-clipboard-set] )) then clipcopy () { cat "${1:-/dev/stdin}" | termux-clipboard-set } clippaste () { termux-clipboard-get } elif [ -n "${TMUX:-}" ] && (( ${+commands[tmux]} )) then clipcopy () { tmux load-buffer -w "${1:--}" } clippaste () { tmux save-buffer - } else _retry_clipboard_detection_or_fail () { local clipcmd="${1}" shift if detect-clipboard then "${clipcmd}" "$@" else print "${clipcmd}: Platform $OSTYPE not supported or xclip/xsel not installed" >&2 return 1 fi } clipcopy () { _retry_clipboard_detection_or_fail clipcopy "$@" } clippaste () { _retry_clipboard_detection_or_fail clippaste "$@" } return 1 fi } diff () { command diff --color "$@" } disable-fzf-tab () { emulate -L zsh -o extended_glob (( $+_ftb_orig_widget )) || return 0 bindkey '^I' $_ftb_orig_widget case $_ftb_orig_list_grouped in (0) zstyle ':completion:*' list-grouped false ;; (1) zstyle ':completion:*' list-grouped true ;; (2) zstyle -d ':completion:*' list-grouped ;; esac unset _ftb_orig_widget _ftb_orig_list_groupded unfunction compadd 2> /dev/null functions[_main_complete]=$functions[_ftb__main_complete] functions[_approximate]=$functions[_ftb__approximate] } down-line-or-beginning-search () { # undefined builtin autoload -XU } edit-command-line () { # undefined builtin autoload -XU } enable-fzf-tab () { emulate -L zsh -o extended_glob (( ! $+_ftb_orig_widget )) || disable-fzf-tab typeset -g _ftb_orig_widget="${${$(builtin bindkey '^I')##* }:-expand-or-complete}" if (( ! $+widgets[.fzf-tab-orig-$_ftb_orig_widget] )) then local compinit_widgets=(complete-word delete-char-or-list expand-or-complete expand-or-complete-prefix list-choices menu-complete menu-expand-or-complete reverse-menu-complete) if [[ $widgets[$_ftb_orig_widget] == builtin && $compinit_widgets[(Ie)$_ftb_orig_widget] != 0 ]] then zle -C .fzf-tab-orig-$_ftb_orig_widget .$_ftb_orig_widget _main_complete else zle -A $_ftb_orig_widget .fzf-tab-orig-$_ftb_orig_widget fi fi zstyle -t ':completion:*' list-grouped false typeset -g _ftb_orig_list_grouped=$? zstyle ':completion:*' list-grouped false bindkey -M emacs '^I' fzf-tab-complete bindkey -M viins '^I' fzf-tab-complete bindkey -M emacs '^X.' fzf-tab-debug bindkey -M viins '^X.' fzf-tab-debug autoload +X -Uz _main_complete _approximate functions[compadd]=$functions[-ftb-compadd] functions[_ftb__main_complete]=$functions[_main_complete] _main_complete () { -ftb-complete "$@" } functions[_ftb__approximate]=$functions[_approximate] _approximate () { (( ! IN_FZF_TAB )) || unfunction compadd _ftb__approximate (( ! IN_FZF_TAB )) || functions[compadd]=$functions[-ftb-compadd] } } env_default () { [[ ${parameters[$1]} = *-export* ]] && return 0 export "$1=$2" && return 3 } fr () { FIND="$1" REPLACE="$2" FILTER="$3" if [ -z "${FIND}" ] || [ -z "${REPLACE}" ] then echo "ERR: must include two parameters for find and replace" >&2 fr_usage return 1 fi if command -v rg 2>&1 > /dev/null then if [ -z "${FILTER}" ] then rg --hidden --glob '!.git/' -l "$FIND" | xargs sed -i "s/${FIND}/${REPLACE}/g" else rg --hidden --glob '!.git/' -l "$FIND" | rg --hidden --glob '!.git/' -i "$FILTER" | xargs sed -i "s/${FIND}/${REPLACE}/g" fi else if [ -z "${FILTER}" ] then grep --color=auto --color -l "$FIND" | xargs sed -i "s/${FIND}/${REPLACE}/g" else grep --color=auto --color -l "$FIND" | grep --color=auto --color -i "$FILTER" | xargs sed -i "s/${FIND}/${REPLACE}/g" fi fi } ftb-switch-group () { # undefined builtin autoload -XUz } ftb-tmux-popup () { # undefined builtin autoload -XUz } fzf-tab-complete () { local -i _ftb_continue=1 _ftb_continue_last=0 _ftb_accept=0 ret=0 echoti civis > /dev/tty 2> /dev/null while (( _ftb_continue )) do local _ftb_choices=() _ftb_compcap=() _ftb_finish=0 _ftb_continue=0 local IN_FZF_TAB=1 { zle .fzf-tab-orig-$_ftb_orig_widget || ret=$? if (( ! ret && ! _ftb_finish )) then zle _fzf-tab-apply || ret=$? fi } always { IN_FZF_TAB=0 } if (( _ftb_continue )) then zle .split-undo zle .reset-prompt zle -R zle fzf-tab-dummy fi done echoti cnorm > /dev/tty 2> /dev/null zle .redisplay (( _ftb_accept )) && zle .accept-line return $ret } fzf-tab-debug () { (( $+_ftb_debug_cnt )) || typeset -gi _ftb_debug_cnt local tmp=${TMPPREFIX:-/tmp/zsh}-$$-fzf-tab-$(( ++_ftb_debug_cnt )).log local -i debug_fd=-1 IN_FZF_TAB=1 { exec {debug_fd}>&2 2>| $tmp local -a debug_indent debug_indent=('%'{3..20}'(e. .)') local PROMPT4 PS4="${(j::)debug_indent}+%N:%i> " functions -t -- -ftb-complete _fzf-tab-apply fzf-tab-complete { echo $ZSH_NAME $ZSH_VERSION echo fzf-tab: $(-ftb-version) typeset -p FZF_DEFAULT_OPTS echo $commands[fzf] $(fzf --version) } >&2 zle fzf-tab-complete if (( debug_fd != -1 )) then zle -M "fzf-tab-debug: Trace output left in $tmp" fi } always { functions +t -- -ftb-complete _fzf-tab-apply fzf-tab-complete (( debug_fd != -1 )) && exec 2>&$debug_fd {debug_fd}>&- } } fzf-tab-dummy () { } fzf-tab-lscolors::from-mode () { emulate -L zsh setopt cbases octalzeroes extendedglob [[ -z $2 ]] && return 1 local -i reg=0 local -a codes local -i st_mode=$(($2)) case $(( st_mode & 0170000 )) in ($(( 0140000 ))) codes=($modecolors[so]) ;; ($(( 0120000 ))) if ! (($+3)) then REPLY=$modecolors[or] elif [[ $modecolors[ln] = target ]] then "$0" "$1" "${@:3}" else REPLY=$modecolors[ln] fi return ;; ($(( 0100000 ))) codes=() reg=1 ;; ($(( 0060000 ))) codes=($modecolors[bd]) ;; ($(( 0040000 ))) codes=($modecolors[di]) ;; ($(( 0020000 ))) codes=($modecolors[cd]) ;; ($(( 0010000 ))) codes=($modecolors[pi]) ;; esac (( st_mode & 04000 )) && codes+=($modecolors[su]) (( st_mode & 02000 )) && codes+=($modecolors[sg]) (( ! reg )) && case $(( st_mode & 01002 )) in ($(( 01000 ))) codes+=($modecolors[st]) ;; ($(( 00002 ))) codes+=($modecolors[ow]) ;; ($(( 01002 ))) codes+=($modecolors[tw]) ;; esac if (( ! $#codes )) then (( st_mode & 0111 )) && codes+=($modecolors[ex]) fi [[ -n ${REPLY::=${(j:;:)codes}} ]] } fzf-tab-lscolors::from-name () { emulate -L zsh setopt extendedglob [[ -n ${REPLY::=$namecolors[(k)$1]} ]] } fzf-tab-lscolors::init () { emulate -L zsh local LS_COLORS=${1:-${LS_COLORS:-$LSCOLORS}} typeset -gA namecolors=(${(@s:=:)${(@s.:.)LS_COLORS}:#[[:alpha:]][[:alpha:]]=*}) typeset -gA modecolors=(${(@Ms:=:)${(@s.:.)LS_COLORS}:#[[:alpha:]][[:alpha:]]=*}) } fzf-tab-lscolors::match-by () { emulate -L zsh setopt extendedglob cbases octalzeroes local arg REPLY name=$1 pfx=${0%::match-by} shift if ! [[ -v namecolors && -v modecolors ]] then local -A namecolors modecolors ${pfx}::init fi if [[ ${1:l} = (g|global) ]] then shift else local -a stat lstat declare -ga reply=() fi zmodload -F zsh/stat b:zstat for arg do case ${arg[1]:l} in (n | name) ${pfx}::from-name $name reply+=("$REPLY") ;; (l | lstat) (($#lstat)) || zstat -A lstat -L $name || return 1 if ((lstat[3] & 0170000 )) then (($#stat)) || zstat -A stat $name 2> /dev/null fi ${pfx}::from-mode "$name" "$lstat[3]" $stat[3] if [[ -n $REPLY || ${2[1]} = L ]] then reply+=("$REPLY") else "$0" "$name" g n fi ;; (s | stat) (($#stat)) || zstat -A stat $name || return 1 ${pfx}::from-mode $name $stat[3] reply+=("$REPLY") if [[ -n $REPLY || ${arg[1]} = S ]] then reply+=("$REPLY") else "$0" "$name" g n fi ;; (f | follow) (($#lstat)) || zstat -A lstat -L $name || return 1 reply+=("$lstat[14]") ;; (a | all) "$0" "$name" g ${${${arg[1]%a}:+L}:-l} reply+=($lstat[14]) if [[ -n $lstat[14] ]] then if [[ -e $name ]] then "$0" "$name" g ${${${arg[1]%a}:+S}:-s} else reply+=($reply[-2]) fi fi ;; (*) return 2 ;; esac done } gbda () { git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2> /dev/null } gbds () { local default_branch=$(git_main_branch) (( ! $? )) || default_branch=$(git_develop_branch) git for-each-ref refs/heads/ "--format=%(refname:short)" | while read branch do local merge_base=$(git merge-base $default_branch $branch) if [[ $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) = -* ]] then git branch -D $branch fi done } gccd () { setopt localoptions extendedglob local repo="${${@[(r)(ssh://*|git://*|ftp(s)#://*|http(s)#://*|*@*)(.git/#)#]}:-$_}" command git clone --recurse-submodules "$@" || return [[ -d "$_" ]] && cd "$_" || cd "${${repo:t}%.git/#}" } gdnolock () { git diff "$@" ":(exclude)package-lock.json" ":(exclude)*.lock" } gdv () { git diff -w "$@" | view - } getent () { if [[ $1 = hosts ]] then sed 's/#.*//' /etc/$1 | grep -w $2 elif [[ $2 = <-> ]] then grep ":$2:[^:]*$" /etc/$1 else grep "^$2:" /etc/$1 fi } ggf () { local b [[ $# != 1 ]] && b="$(git_current_branch)" git push --force origin "${b:-$1}" } ggfl () { local b [[ $# != 1 ]] && b="$(git_current_branch)" git push --force-with-lease origin "${b:-$1}" } ggl () { if [[ $# != 0 ]] && [[ $# != 1 ]] then git pull origin "${*}" else local b [[ $# == 0 ]] && b="$(git_current_branch)" git pull origin "${b:-$1}" fi } ggp () { if [[ $# != 0 ]] && [[ $# != 1 ]] then git push origin "${*}" else local b [[ $# == 0 ]] && b="$(git_current_branch)" git push origin "${b:-$1}" fi } ggpnp () { if [[ $# == 0 ]] then ggl && ggp else ggl "${*}" && ggp "${*}" fi } ggu () { local b [[ $# != 1 ]] && b="$(git_current_branch)" git pull --rebase origin "${b:-$1}" } git_commits_ahead () { if __git_prompt_git rev-parse --git-dir &> /dev/null then local commits="$(__git_prompt_git rev-list --count @{upstream}..HEAD 2>/dev/null)" if [[ -n "$commits" && "$commits" != 0 ]] then echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX" fi fi } git_commits_behind () { if __git_prompt_git rev-parse --git-dir &> /dev/null then local commits="$(__git_prompt_git rev-list --count HEAD..@{upstream} 2>/dev/null)" if [[ -n "$commits" && "$commits" != 0 ]] then echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX" fi fi } git_current_branch () { local ref ref=$(__git_prompt_git symbolic-ref --quiet HEAD 2> /dev/null) local ret=$? if [[ $ret != 0 ]] then [[ $ret == 128 ]] && return ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) || return fi echo ${ref#refs/heads/} } git_current_user_email () { __git_prompt_git config user.email 2> /dev/null } git_current_user_name () { __git_prompt_git config user.name 2> /dev/null } git_develop_branch () { command git rev-parse --git-dir &> /dev/null || return local branch for branch in dev devel develop development do if command git show-ref -q --verify refs/heads/$branch then echo $branch return 0 fi done echo develop return 1 } git_main_branch () { command git rev-parse --git-dir &> /dev/null || return local remote ref for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default,stable,master} do if command git show-ref -q --verify $ref then echo ${ref:t} return 0 fi done for remote in origin upstream do ref=$(command git rev-parse --abbrev-ref $remote/HEAD 2>/dev/null) if [[ $ref == $remote/* ]] then echo ${ref#"$remote/"} return 0 fi done echo master return 1 } git_previous_branch () { local ref ref=$(__git_prompt_git rev-parse --quiet --symbolic-full-name @{-1} 2> /dev/null) local ret=$? if [[ $ret != 0 ]] || [[ -z $ref ]] then return fi echo ${ref#refs/heads/} } git_prompt_ahead () { if [[ -n "$(__git_prompt_git rev-list origin/$(git_current_branch)..HEAD 2> /dev/null)" ]] then echo "$ZSH_THEME_GIT_PROMPT_AHEAD" fi } git_prompt_behind () { if [[ -n "$(__git_prompt_git rev-list HEAD..origin/$(git_current_branch) 2> /dev/null)" ]] then echo "$ZSH_THEME_GIT_PROMPT_BEHIND" fi } git_prompt_info () { if [[ -n "${_OMZ_ASYNC_OUTPUT[_omz_git_prompt_info]}" ]] then echo -n "${_OMZ_ASYNC_OUTPUT[_omz_git_prompt_info]}" fi } git_prompt_long_sha () { local SHA SHA=$(__git_prompt_git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" } git_prompt_remote () { if [[ -n "$(__git_prompt_git show-ref origin/$(git_current_branch) 2> /dev/null)" ]] then echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS" else echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING" fi } git_prompt_short_sha () { local SHA SHA=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" } git_prompt_status () { if [[ -n "${_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]}" ]] then echo -n "${_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]}" fi } git_remote_status () { local remote ahead behind git_remote_status git_remote_status_detailed remote=${$(__git_prompt_git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} if [[ -n ${remote} ]] then ahead=$(__git_prompt_git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) behind=$(__git_prompt_git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) if [[ $ahead -eq 0 ]] && [[ $behind -eq 0 ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE" elif [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}" elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE" git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE" git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" fi if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]] then git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX${remote:gs/%/%%}$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX" fi echo $git_remote_status fi } git_repo_name () { local repo_path if repo_path="$(__git_prompt_git rev-parse --show-toplevel 2>/dev/null)" && [[ -n "$repo_path" ]] then echo ${repo_path:t} fi } google () { open "https://www.google.com/search?q=`echo "${@}" | urlencode`" } grename () { if [[ -z "$1" || -z "$2" ]] then echo "Usage: $0 old_branch new_branch" return 1 fi git branch -m "$1" "$2" if git push origin :"$1" then git push --set-upstream origin "$2" fi } gunwipall () { local _commit=$(git log --grep='--wip--' --invert-grep --max-count=1 --format=format:%H) if [[ "$_commit" != "$(git rev-parse HEAD)" ]] then git reset $_commit || return 1 fi } handle_completion_insecurities () { local -aU insecure_dirs insecure_dirs=(${(f@):-"$(compaudit 2>/dev/null)"}) [[ -z "${insecure_dirs}" ]] && return print "[oh-my-zsh] Insecure completion-dependent directories detected:" ls -ld "${(@)insecure_dirs}" cat < ]] do (( ++ver_cnt > ${#version} )) && return 0 if [[ ${version[ver_cnt]} = *[0-9][^0-9]* ]] then order=(${version[ver_cnt]} ${min_ver[ver_cnt]}) if [[ ${version[ver_cnt]} = <->* ]] then [[ $order != ${${(On)order}} ]] && return 1 else [[ $order != ${${(O)order}} ]] && return 1 fi [[ $order[1] != $order[2] ]] && return 0 fi part=${version[ver_cnt]##*[^0-9]} done while true do (( ++min_cnt > ${#min_ver} )) && return 0 [[ ${min_ver[min_cnt]} = <-> ]] && break done (( part > min_ver[min_cnt] )) && return 0 (( part < min_ver[min_cnt] )) && return 1 part='' done } is_plugin () { local base_dir=$1 local name=$2 builtin test -f $base_dir/plugins/$name/$name.plugin.zsh || builtin test -f $base_dir/plugins/$name/_$name } is_theme () { local base_dir=$1 local name=$2 builtin test -f $base_dir/$name.zsh-theme } jenv_prompt_info () { return 1 } kj () { kubectl "$@" -o json | jq } kjx () { kubectl "$@" -o json | fx } kres () { kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S) } kutil () { for host in $(kubectl get nodes --no-headers | cut -d' ' -f1) do echo "$host - $(kubectl get nodes -o jsonpath='{.metadata.labels.topology\.kubernetes\.io/zone}' $host)" kubecolor describe node "$host" | grep --color=auto --color Allocated -A 5 | grep --color=auto --color -ve Event -ve Allocated -ve percent -ve -- echo done } ky () { kubectl "$@" -o yaml | yh } mise () { local command command="${1:-}" if [ "$#" = 0 ] then command /Users/steve.briggs/.local/bin/mise return fi shift case "$command" in (deactivate | shell | sh) if [[ ! " $@ " =~ " --help " ]] && [[ ! " $@ " =~ " -h " ]] then eval "$(command /Users/steve.briggs/.local/bin/mise "$command" "$@")" return $? fi ;; esac command /Users/steve.briggs/.local/bin/mise "$command" "$@" } mkcd () { mkdir -p $@ && cd ${@:$#} } nvm_prompt_info () { which nvm &> /dev/null || return local nvm_prompt=${$(nvm current)#v} echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt:gs/%/%%}${ZSH_THEME_NVM_PROMPT_SUFFIX}" } omz () { setopt localoptions noksharrays [[ $# -gt 0 ]] || { _omz::help return 1 } local command="$1" shift (( ${+functions[_omz::$command]} )) || { _omz::help return 1 } _omz::$command "$@" } omz_diagnostic_dump () { emulate -L zsh builtin echo "Generating diagnostic dump; please be patient..." local thisfcn=omz_diagnostic_dump local -A opts local opt_verbose opt_noverbose opt_outfile local timestamp=$(date +%Y%m%d-%H%M%S) local outfile=omz_diagdump_$timestamp.txt builtin zparseopts -A opts -D -- "v+=opt_verbose" "V+=opt_noverbose" local verbose n_verbose=${#opt_verbose} n_noverbose=${#opt_noverbose} (( verbose = 1 + n_verbose - n_noverbose )) if [[ ${#*} > 0 ]] then opt_outfile=$1 fi if [[ ${#*} > 1 ]] then builtin echo "$thisfcn: error: too many arguments" >&2 return 1 fi if [[ -n "$opt_outfile" ]] then outfile="$opt_outfile" fi _omz_diag_dump_one_big_text &> "$outfile" if [[ $? != 0 ]] then builtin echo "$thisfcn: error while creating diagnostic dump; see $outfile for details" fi builtin echo builtin echo Diagnostic dump file created at: "$outfile" builtin echo builtin echo To share this with OMZ developers, post it as a gist on GitHub builtin echo at "https://gist.github.com" and share the link to the gist. builtin echo builtin echo "WARNING: This dump file contains all your zsh and omz configuration files," builtin echo "so don't share it publicly if there's sensitive information in them." builtin echo } omz_history () { local clear list stamp REPLY zparseopts -E -D c=clear l=list f=stamp E=stamp i=stamp t:=stamp if [[ -n "$clear" ]] then print -nu2 "This action will irreversibly delete your command history. Are you sure? [y/N] " builtin read -E [[ "$REPLY" = [yY] ]] || return 0 print -nu2 >| "$HISTFILE" fc -p "$HISTFILE" print -u2 History file deleted. elif [[ $# -eq 0 ]] then builtin fc "${stamp[@]}" -l 1 else builtin fc "${stamp[@]}" -l "$@" fi } omz_termsupport_cwd () { setopt localoptions unset local URL_HOST URL_PATH URL_HOST="$(omz_urlencode -P $HOST)" || return 1 URL_PATH="$(omz_urlencode -P $PWD)" || return 1 [[ -z "$KONSOLE_PROFILE_NAME" && -z "$KONSOLE_DBUS_SESSION" ]] || URL_HOST="" printf "\e]7;file://%s%s\e\\" "${URL_HOST}" "${URL_PATH}" } omz_termsupport_precmd () { [[ "${DISABLE_AUTO_TITLE:-}" != true ]] || return 0 title "$ZSH_THEME_TERM_TAB_TITLE_IDLE" "$ZSH_THEME_TERM_TITLE_IDLE" } omz_termsupport_preexec () { [[ "${DISABLE_AUTO_TITLE:-}" != true ]] || return 0 emulate -L zsh setopt extended_glob local -a cmdargs cmdargs=("${(z)2}") if [[ "${cmdargs[1]}" = fg ]] then local job_id jobspec="${cmdargs[2]#%}" case "$jobspec" in (<->) job_id=${jobspec} ;; ("" | % | +) job_id=${(k)jobstates[(r)*:+:*]} ;; (-) job_id=${(k)jobstates[(r)*:-:*]} ;; ([?]*) job_id=${(k)jobtexts[(r)*${(Q)jobspec}*]} ;; (*) job_id=${(k)jobtexts[(r)${(Q)jobspec}*]} ;; esac if [[ -n "${jobtexts[$job_id]}" ]] then 1="${jobtexts[$job_id]}" 2="${jobtexts[$job_id]}" fi fi local CMD="${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%}" local LINE="${2:gs/%/%%}" title "$CMD" "%100>...>${LINE}%<<" } omz_urldecode () { emulate -L zsh local encoded_url=$1 local caller_encoding=$langinfo[CODESET] local LC_ALL=C export LC_ALL local tmp=${encoded_url:gs/+/ /} tmp=${tmp:gs/\\/\\\\/} tmp=${tmp:gs/%/\\x/} local decoded="$(printf -- "$tmp")" local -a safe_encodings safe_encodings=(UTF-8 utf8 US-ASCII) if [[ -z ${safe_encodings[(r)$caller_encoding]} ]] then decoded=$(echo -E "$decoded" | iconv -f UTF-8 -t $caller_encoding) if [[ $? != 0 ]] then echo "Error converting string from UTF-8 to $caller_encoding" >&2 return 1 fi fi echo -E "$decoded" } omz_urlencode () { emulate -L zsh setopt norematchpcre local -a opts zparseopts -D -E -a opts r m P local in_str="$@" local url_str="" local spaces_as_plus if [[ -z $opts[(r)-P] ]] then spaces_as_plus=1 fi local str="$in_str" local encoding=$langinfo[CODESET] local safe_encodings safe_encodings=(UTF-8 utf8 US-ASCII) if [[ -z ${safe_encodings[(r)$encoding]} ]] then str=$(echo -E "$str" | iconv -f $encoding -t UTF-8) if [[ $? != 0 ]] then echo "Error converting string from $encoding to UTF-8" >&2 return 1 fi fi local i byte ord LC_ALL=C export LC_ALL local reserved=';/?:@&=+$,' local mark='_.!~*''()-' local dont_escape="[A-Za-z0-9" if [[ -z $opts[(r)-r] ]] then dont_escape+=$reserved fi if [[ -z $opts[(r)-m] ]] then dont_escape+=$mark fi dont_escape+="]" local url_str="" for ((i = 1; i <= ${#str}; ++i )) do byte="$str[i]" if [[ "$byte" =~ "$dont_escape" ]] then url_str+="$byte" else if [[ "$byte" == " " && -n $spaces_as_plus ]] then url_str+="+" elif [[ "$PREFIX" = *com.termux* ]] then url_str+="$byte" else ord=$(( [##16] #byte )) url_str+="%$ord" fi fi done echo -E "$url_str" } open_command () { local open_cmd case "$OSTYPE" in (darwin*) open_cmd='open' ;; (cygwin*) open_cmd='cygstart' ;; (linux*) [[ "$(uname -r)" != *icrosoft* ]] && open_cmd='nohup xdg-open' || { open_cmd='cmd.exe /c start ""' [[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 } [[ "$1" = (http|https)://* ]] && { 1="$(echo "$1" | sed -E 's/([&|()<>^])/^\1/g')" || return 1 } } ;; (msys*) open_cmd='start ""' ;; (*) echo "Platform $OSTYPE not supported" return 1 ;; esac if [[ -n "$BROWSER" && "$1" = (http|https)://* ]] then "$BROWSER" "$@" return fi ${=open_cmd} "$@" &> /dev/null } parse_git_dirty () { local STATUS local -a FLAGS FLAGS=('--porcelain') if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-dirty)" != "1" ]] then if [[ "${DISABLE_UNTRACKED_FILES_DIRTY:-}" == "true" ]] then FLAGS+='--untracked-files=no' fi case "${GIT_STATUS_IGNORE_SUBMODULES:-}" in (git) ;; (*) FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}" ;; esac STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -n 1) fi if [[ -n $STATUS ]] then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" fi } prompt_starship_precmd () { STARSHIP_CMD_STATUS=$? STARSHIP_PIPE_STATUS=(${pipestatus[@]}) if (( ${+STARSHIP_START_TIME} )) then __starship_get_time && (( STARSHIP_DURATION = STARSHIP_CAPTURED_TIME - STARSHIP_START_TIME )) unset STARSHIP_START_TIME else unset STARSHIP_DURATION STARSHIP_CMD_STATUS STARSHIP_PIPE_STATUS fi STARSHIP_JOBS_COUNT=${#jobstates} } prompt_starship_preexec () { __starship_get_time && STARSHIP_START_TIME=$STARSHIP_CAPTURED_TIME } pyenv_prompt_info () { return 1 } rbenv_prompt_info () { return 1 } regexp-replace () { argv=("$1" "$2" "$3") 4=0 [[ -o re_match_pcre ]] && 4=1 emulate -L zsh local MATCH MBEGIN MEND local -a match mbegin mend if (( $4 )) then zmodload zsh/pcre || return 2 pcre_compile -- "$2" && pcre_study || return 2 4=0 6= local ZPCRE_OP while pcre_match -b -n $4 -- "${(P)1}" do 5=${(e)3} argv+=(${(s: :)ZPCRE_OP} "$5") 4=$((argv[-2] + (argv[-3] == argv[-2]))) done (($# > 6)) || return set +o multibyte 5= 6=1 for 2 3 4 in "$@[7,-1]" do 5+=${(P)1[$6,$2]}$4 6=$(($3 + 1)) done 5+=${(P)1[$6,-1]} else 4=${(P)1} while [[ -n $4 ]] do if [[ $4 =~ $2 ]] then 5+=${4[1,MBEGIN-1]}${(e)3} if ((MEND < MBEGIN)) then ((MEND++)) 5+=${4[1]} fi 4=${4[MEND+1,-1]} 6=1 else break fi done [[ -n $6 ]] || return 5+=$4 fi eval $1=\$5 } ruby_prompt_info () { echo "$(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info)" } rvm_prompt_info () { [ -f $HOME/.rvm/bin/rvm-prompt ] || return 1 local rvm_prompt rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${=ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null) [[ -z "${rvm_prompt}" ]] && return 1 echo "${ZSH_THEME_RUBY_PROMPT_PREFIX}${rvm_prompt:gs/%/%%}${ZSH_THEME_RUBY_PROMPT_SUFFIX}" } spectrum_bls () { setopt localoptions nopromptsubst local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris} for code in {000..255} do print -P -- "$code: ${BG[$code]}${ZSH_SPECTRUM_TEXT}%{$reset_color%}" done } spectrum_ls () { setopt localoptions nopromptsubst local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris} for code in {000..255} do print -P -- "$code: ${FG[$code]}${ZSH_SPECTRUM_TEXT}%{$reset_color%}" done } starship_zle-keymap-select () { zle reset-prompt } svn_prompt_info () { return 1 } take () { if [[ $1 =~ ^(https?|ftp).*\.(tar\.(gz|bz2|xz)|tgz)$ ]] then takeurl "$1" elif [[ $1 =~ ^(https?|ftp).*\.(zip)$ ]] then takezip "$1" elif [[ $1 =~ ^([A-Za-z0-9]\+@|https?|git|ssh|ftps?|rsync).*\.git/?$ ]] then takegit "$1" else takedir "$@" fi } takedir () { mkdir -p $@ && cd ${@:$#} } takegit () { git clone "$1" cd "$(basename ${1%%.git})" } takeurl () { local data thedir data="$(mktemp)" curl -L "$1" > "$data" tar xf "$data" thedir="$(tar tf "$data" | head -n 1)" rm "$data" cd "$thedir" } takezip () { local data thedir data="$(mktemp)" curl -L "$1" > "$data" unzip "$data" -d "./" thedir="$(unzip -l "$data" | awk 'NR==4 {print $4}' | sed 's/\/.*//')" rm "$data" cd "$thedir" } tf_prompt_info () { return 1 } tfdocs () { open "https://registry.terraform.io/search/providers?q=`echo "${@}" | urlencode`" } title () { setopt localoptions nopromptsubst [[ -n "${INSIDE_EMACS:-}" && "$INSIDE_EMACS" != vterm ]] && return : ${2=$1} case "$TERM" in (cygwin | xterm* | putty* | rxvt* | konsole* | ansi | mlterm* | alacritty* | st* | foot* | contour* | wezterm*) print -Pn "\e]2;${2:q}\a" print -Pn "\e]1;${1:q}\a" ;; (screen* | tmux*) print -Pn "\ek${1:q}\e\\" ;; (*) if [[ "$TERM_PROGRAM" == "iTerm.app" ]] then print -Pn "\e]2;${2:q}\a" print -Pn "\e]1;${1:q}\a" else if (( ${+terminfo[fsl]} && ${+terminfo[tsl]} )) then print -Pn "${terminfo[tsl]}$1${terminfo[fsl]}" fi fi ;; esac } toggle-fzf-tab () { emulate -L zsh -o extended_glob if (( $+_ftb_orig_widget )) then disable-fzf-tab else enable-fzf-tab fi } try_alias_value () { alias_value "$1" || echo "$1" } uninstall_oh_my_zsh () { command env ZSH="$ZSH" sh "$ZSH/tools/uninstall.sh" } up-line-or-beginning-search () { # undefined builtin autoload -XU } upgrade_oh_my_zsh () { echo "${fg[yellow]}Note: \`$0\` is deprecated. Use \`omz update\` instead.$reset_color" >&2 omz update } url-quote-magic () { # undefined builtin autoload -XUz } urldecode () { python -c "import sys; from urllib.parse import unquote; print(unquote(sys.stdin.read()), end='')" } urlencode () { python -c "import sys; from urllib.parse import quote_plus; print(quote_plus(sys.stdin.read()))" } vi_mode_prompt_info () { return 1 } virtualenv_prompt_info () { return 1 } work_in_progress () { command git -c log.showSignature=false log -n 1 2> /dev/null | grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox,.venv,venv} -q -- "--wip--" && echo "WIP!!" } zle-line-finish () { echoti rmkx } zle-line-init () { echoti smkx } zrecompile () { setopt localoptions extendedglob noshwordsplit noksharrays local opt check quiet zwc files re file pre ret map tmp mesg pats tmp=() while getopts ":tqp" opt do case $opt in (t) check=yes ;; (q) quiet=yes ;; (p) pats=yes ;; (*) if [[ -n $pats ]] then tmp=($tmp $OPTARG) else print -u2 zrecompile: bad option: -$OPTARG return 1 fi ;; esac done shift OPTIND-${#tmp}-1 if [[ -n $check ]] then ret=1 else ret=0 fi if [[ -n $pats ]] then local end num while (( $# )) do end=$argv[(i)--] if [[ end -le $# ]] then files=($argv[1,end-1]) shift end else files=($argv) argv=() fi tmp=() map=() OPTIND=1 while getopts :MR opt $files do case $opt in ([MR]) map=(-$opt) ;; (*) tmp=($tmp $files[OPTIND]) ;; esac done shift OPTIND-1 files (( $#files )) || continue files=($files[1] ${files[2,-1]:#*(.zwc|~)}) (( $#files )) || continue zwc=${files[1]%.zwc}.zwc shift 1 files (( $#files )) || files=(${zwc%.zwc}) if [[ -f $zwc ]] then num=$(zcompile -t $zwc | wc -l) if [[ num-1 -ne $#files ]] then re=yes else re= for file in $files do if [[ $file -nt $zwc ]] then re=yes break fi done fi else re=yes fi if [[ -n $re ]] then if [[ -n $check ]] then [[ -z $quiet ]] && print $zwc needs re-compilation ret=0 else [[ -z $quiet ]] && print -n "re-compiling ${zwc}: " if [[ -z "$quiet" ]] && { [[ ! -f $zwc ]] || mv -f $zwc ${zwc}.old } && zcompile $map $tmp $zwc $files then print succeeded elif ! { { [[ ! -f $zwc ]] || mv -f $zwc ${zwc}.old } && zcompile $map $tmp $zwc $files 2> /dev/null } then [[ -z $quiet ]] && print "re-compiling ${zwc}: failed" ret=1 fi fi fi done return ret fi if (( $# )) then argv=(${^argv}/*.zwc(ND) ${^argv}.zwc(ND) ${(M)argv:#*.zwc}) else argv=(${^fpath}/*.zwc(ND) ${^fpath}.zwc(ND) ${(M)fpath:#*.zwc}) fi argv=(${^argv%.zwc}.zwc) for zwc do files=(${(f)"$(zcompile -t $zwc)"}) if [[ $files[1] = *\(mapped\)* ]] then map=-M mesg='succeeded (old saved)' else map=-R mesg=succeeded fi if [[ $zwc = */* ]] then pre=${zwc%/*}/ else pre= fi if [[ $files[1] != *$ZSH_VERSION ]] then re=yes else re= fi files=(${pre}${^files[2,-1]:#/*} ${(M)files[2,-1]:#/*}) [[ -z $re ]] && for file in $files do if [[ $file -nt $zwc ]] then re=yes break fi done if [[ -n $re ]] then if [[ -n $check ]] then [[ -z $quiet ]] && print $zwc needs re-compilation ret=0 else [[ -z $quiet ]] && print -n "re-compiling ${zwc}: " tmp=(${^files}(N)) if [[ $#tmp -ne $#files ]] then [[ -z $quiet ]] && print 'failed (missing files)' ret=1 else if [[ -z "$quiet" ]] && mv -f $zwc ${zwc}.old && zcompile $map $zwc $files then print $mesg elif ! { mv -f $zwc ${zwc}.old && zcompile $map $zwc $files 2> /dev/null } then [[ -z $quiet ]] && print "re-compiling ${zwc}: failed" ret=1 fi fi fi fi done return ret } zsh_stats () { fc -l 1 | awk '{ CMD[$2]++; count++; } END { for (a in CMD) print CMD[a] " " CMD[a]*100/count "% " a }' | grep -v "./" | sort -nr | head -n 20 | column -c3 -s " " -t | nl } # Shell Options setopt alwaystoend setopt autocd setopt autopushd setopt completeinword setopt extendedhistory setopt noflowcontrol setopt nohashdirs setopt histexpiredupsfirst setopt histignoredups setopt histignorespace setopt histverify setopt interactivecomments setopt login setopt longlistjobs setopt promptsubst setopt pushdignoredups setopt pushdminus setopt sharehistory # Aliases alias -- -='cd -' alias -- ..='cd ..' alias -- ...=../.. alias -- ....=../../.. alias -- .....=../../../.. alias -- ......=../../../../.. alias -- .1='cd ..' alias -- .2='cd ../../' alias -- .3='cd ../../../' alias -- .4=../../../../ alias -- .5='cd ../../../../../' alias -- 1='cd -1' alias -- 2='cd -2' alias -- 3='cd -3' alias -- 4='cd -4' alias -- 5='cd -5' alias -- 6='cd -6' alias -- 7='cd -7' alias -- 8='cd -8' alias -- 9='cd -9' alias -- APPS='cd ${HOME}/GIT_REPOS/APPLICATION-DEPLOYMENTS' alias -- EKS-BASE='cd ${HOME}/GIT_REPOS/EKS-BASE-DEPLOY' alias -- Gerp=grep alias -- Grep=grep alias -- INFRA='cd ${HOME}/GIT_REPOS/CLOUD-INFRASTRUCTURE-TERRAFORM' alias -- K8S-BASE='cd ${HOME}/GIT_REPOS/K8S-BASE-DEPLOY' alias -- _='sudo ' alias -- ac=aws-cred alias -- av=aws-vault alias -- config='/usr/bin/git --git-dir=$HOME/.cfg/.git/ --work-tree=$HOME' alias -- cp='cp -i' alias -- current_branch=$'\n print -Pu2 "%F{yellow}[oh-my-zsh] \'%F{red}current_branch%F{yellow}\' is deprecated, using \'%F{green}git_current_branch%F{yellow}\' instead.%f"\n git_current_branch' alias -- diff='colordiff --side-by-side --suppress-common-lines' alias -- dog=cat alias -- egrep='egrep --color=auto' alias -- emacs=nvim alias -- fgrep='fgrep --color=auto' alias -- fqdn='kubectl get ingress -o json | jq '\''.items[] | .metadata.namespace + ": " + .metadata.annotations."external-dns.alpha.kubernetes.io/hostname"'\' alias -- fqdna='kubectl get ingress --all-namespaces -o json | jq '\''.items[] | .metadata.namespace + ": " + .metadata.annotations."external-dns.alpha.kubernetes.io/hostname"'\' alias -- fudns='sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder' alias -- g=git alias -- ga='git add' alias -- gaa='git add --all' alias -- gam='git am' alias -- gama='git am --abort' alias -- gamc='git am --continue' alias -- gams='git am --skip' alias -- gamscp='git am --show-current-patch' alias -- gap='git apply' alias -- gapa='git add --patch' alias -- gapt='git apply --3way' alias -- gau='git add --update' alias -- gav='git add --verbose' alias -- gb='git branch' alias -- gbD='git branch --delete --force' alias -- gba='git branch --all' alias -- gbd='git branch --delete' alias -- gbg='LANG=C git branch -vv | grep ": gone\]"' alias -- gbgD='LANG=C git branch --no-color -vv | grep ": gone\]" | cut -c 3- | awk '\''{print $1}'\'' | xargs git branch -D' alias -- gbgd='LANG=C git branch --no-color -vv | grep ": gone\]" | cut -c 3- | awk '\''{print $1}'\'' | xargs git branch -d' alias -- gbl='git blame -w' alias -- gbm='git branch --move' alias -- gbnm='git branch --no-merged' alias -- gbr='git branch --remote' alias -- gbs='git bisect' alias -- gbsb='git bisect bad' alias -- gbsg='git bisect good' alias -- gbsn='git bisect new' alias -- gbso='git bisect old' alias -- gbsr='git bisect reset' alias -- gbss='git bisect start' alias -- gc='git commit --verbose' alias -- gc!='git commit --verbose --amend' alias -- gcB='git checkout -B' alias -- gca='git commit --verbose --all' alias -- gca!='git commit --verbose --all --amend' alias -- gcam='git commit --all --message' alias -- gcan!='git commit --verbose --all --no-edit --amend' alias -- gcann!='git commit --verbose --all --date=now --no-edit --amend' alias -- gcans!='git commit --verbose --all --signoff --no-edit --amend' alias -- gcas='git commit --all --signoff' alias -- gcasm='git commit --all --signoff --message' alias -- gcb='git checkout -b' alias -- gcd='git checkout $(git_develop_branch)' alias -- gcf='git config --list' alias -- gcfu='git commit --fixup' alias -- gcl='git clone --recurse-submodules' alias -- gclean='git clean --interactive -d' alias -- gclf='git clone --recursive --shallow-submodules --filter=blob:none --also-filter-submodules' alias -- gcm='git checkout $(git_main_branch)' alias -- gcmsg='git commit --message' alias -- gcn='git commit --verbose --no-edit' alias -- gcn!='git commit --verbose --no-edit --amend' alias -- gco='git checkout' alias -- gcor='git checkout --recurse-submodules' alias -- gcount='git shortlog --summary --numbered' alias -- gcp='git cherry-pick' alias -- gcpa='git cherry-pick --abort' alias -- gcpc='git cherry-pick --continue' alias -- gcs='git commit --gpg-sign' alias -- gcsm='git commit --signoff --message' alias -- gcss='git commit --gpg-sign --signoff' alias -- gcssm='git commit --gpg-sign --signoff --message' alias -- gd='git diff' alias -- gdca='git diff --cached' alias -- gdct='git describe --tags $(git rev-list --tags --max-count=1)' alias -- gdcw='git diff --cached --word-diff' alias -- gds='git diff --staged' alias -- gdt='git diff-tree --no-commit-id --name-only -r' alias -- gdup='git diff @{upstream}' alias -- gdw='git diff --word-diff' alias -- gerp=grep alias -- gf='git fetch' alias -- gfa='git fetch --all --tags --prune --jobs=10' alias -- gfg='git ls-files | grep' alias -- gfo='git fetch origin' alias -- gg='git gui citool' alias -- gga='git gui citool --amend' alias -- ggpull='git pull origin "$(git_current_branch)"' alias -- ggpur=ggu alias -- ggpush='git push origin "$(git_current_branch)"' alias -- ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' alias -- ghh='git help' alias -- gignore='git update-index --assume-unchanged' alias -- gignored='git ls-files -v | grep "^[[:lower:]]"' alias -- git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' alias -- gk='\gitk --all --branches &!' alias -- gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!' alias -- gl='git pull' alias -- glg='git log --stat' alias -- glgg='git log --graph' alias -- glgga='git log --graph --decorate --all' alias -- glgm='git log --graph --max-count=10' alias -- glgp='git log --stat --patch' alias -- glo='git log --oneline --decorate' alias -- glod='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset"' alias -- glods='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset" --date=short' alias -- glog='git log --oneline --decorate --graph' alias -- gloga='git log --oneline --decorate --graph --all' alias -- glol='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset"' alias -- glola='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --all' alias -- glols='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --stat' alias -- glp=_git_log_prettily alias -- gluc='git pull upstream $(git_current_branch)' alias -- glum='git pull upstream $(git_main_branch)' alias -- gm='git merge' alias -- gma='git merge --abort' alias -- gmc='git merge --continue' alias -- gmff='git merge --ff-only' alias -- gmom='git merge origin/$(git_main_branch)' alias -- gms='git merge --squash' alias -- gmtl='git mergetool --no-prompt' alias -- gmtlvim='git mergetool --no-prompt --tool=vimdiff' alias -- gmum='git merge upstream/$(git_main_branch)' alias -- gp='git push' alias -- gpd='git push --dry-run' alias -- gpf='git push --force-with-lease --force-if-includes' alias -- gpf!='git push --force' alias -- gpoat='git push origin --all && git push origin --tags' alias -- gpod='git push origin --delete' alias -- gpr='git pull --rebase' alias -- gpra='git pull --rebase --autostash' alias -- gprav='git pull --rebase --autostash -v' alias -- gpristine='git reset --hard && git clean --force -dfx' alias -- gprom='git pull --rebase origin $(git_main_branch)' alias -- gpromi='git pull --rebase=interactive origin $(git_main_branch)' alias -- gprum='git pull --rebase upstream $(git_main_branch)' alias -- gprumi='git pull --rebase=interactive upstream $(git_main_branch)' alias -- gprv='git pull --rebase -v' alias -- gpsup='git push --set-upstream origin $(git_current_branch)' alias -- gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes' alias -- gpu='git push upstream' alias -- gpv='git push --verbose' alias -- gr='git remote' alias -- gra='git remote add' alias -- grb='git rebase' alias -- grba='git rebase --abort' alias -- grbc='git rebase --continue' alias -- grbd='git rebase $(git_develop_branch)' alias -- grbi='git rebase --interactive' alias -- grbm='git rebase $(git_main_branch)' alias -- grbo='git rebase --onto' alias -- grbom='git rebase origin/$(git_main_branch)' alias -- grbs='git rebase --skip' alias -- grbum='git rebase upstream/$(git_main_branch)' alias -- grep='grep --color=auto' alias -- grev='git revert' alias -- greva='git revert --abort' alias -- grevc='git revert --continue' alias -- grf='git reflog' alias -- grh='git reset' alias -- grhh='git reset --hard' alias -- grhk='git reset --keep' alias -- grhs='git reset --soft' alias -- grm='git rm' alias -- grmc='git rm --cached' alias -- grmv='git remote rename' alias -- groh='git reset origin/$(git_current_branch) --hard' alias -- grrm='git remote remove' alias -- grs='git restore' alias -- grset='git remote set-url' alias -- grss='git restore --source' alias -- grst='git restore --staged' alias -- grt='cd "$(git rev-parse --show-toplevel || echo .)"' alias -- gru='git reset --' alias -- grup='git remote update' alias -- grv='git remote --verbose' alias -- gsb='git status --short --branch' alias -- gsd='git svn dcommit' alias -- gsh='git show' alias -- gsi='git submodule init' alias -- gsps='git show --pretty=short --show-signature' alias -- gsr='git svn rebase' alias -- gss='git status --short' alias -- gst='git status' alias -- gsta='git stash push' alias -- gstaa='git stash apply' alias -- gstall='git stash --all' alias -- gstc='git stash clear' alias -- gstd='git stash drop' alias -- gstl='git stash list' alias -- gstp='git stash pop' alias -- gsts='git stash show --patch' alias -- gstu='gsta --include-untracked' alias -- gsu='git submodule update' alias -- gsw='git switch' alias -- gswc='git switch --create' alias -- gswd='git switch $(git_develop_branch)' alias -- gswm='git switch $(git_main_branch)' alias -- gta='git tag --annotate' alias -- gtl='gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl' alias -- gts='git tag --sign' alias -- gtv='git tag | sort -V' alias -- gunignore='git update-index --no-assume-unchanged' alias -- gunwip='git rev-list --max-count=1 --format="%s" HEAD | grep -q "\--wip--" && git reset HEAD~1' alias -- gwch='git log --patch --abbrev-commit --pretty=medium --raw' alias -- gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"' alias -- gwipe='git reset --hard && git clean --force -df' alias -- gwt='git worktree' alias -- gwta='git worktree add' alias -- gwtls='git worktree list' alias -- gwtmv='git worktree move' alias -- gwtrm='git worktree remove' alias -- header='curl -I' alias -- headerc='curl -I --compress' alias -- history=omz_history alias -- hr='printf $(printf "\e[$(shuf -i 91-97 -n 1);1m%%%ds\e[0m\n" $(tput cols)) | tr " " =' alias -- iac='cd $HOME/projects/IAC' alias -- k=kubectl alias -- kaf='kubectl apply -f' alias -- kapk='kubectl apply -k' alias -- kbug='kubectl run -i --tty --rm debug --image=ubuntu --restart=Never -- /bin/bash' alias -- kca='_kca(){ kubectl "$@" --all-namespaces; unset -f _kca; }; _kca' alias -- kccc='kubectl config current-context' alias -- kcdc='kubectl config delete-context' alias -- kcgc='kubectl config get-contexts' alias -- kcn='kubectl config set-context --current --namespace' alias -- kcp='kubectl cp' alias -- kcsc='kubectl config set-context' alias -- kcuc='kubectl config use-context' alias -- kd='kubectl describe' alias -- kdcj='kubectl describe cronjob' alias -- kdcm='kubectl describe configmap' alias -- kdd='kubectl describe deployment' alias -- kdds='kubectl describe daemonset' alias -- kdel='kubectl delete' alias -- kdelcj='kubectl delete cronjob' alias -- kdelcm='kubectl delete configmap' alias -- kdeld='kubectl delete deployment' alias -- kdelds='kubectl delete daemonset' alias -- kdelf='kubectl delete -f' alias -- kdeli='kubectl delete ingress' alias -- kdelj='kubectl delete job' alias -- kdelk='kubectl delete -k' alias -- kdelno='kubectl delete node' alias -- kdelns='kubectl delete namespace' alias -- kdelp='kubectl delete pods' alias -- kdelpvc='kubectl delete pvc' alias -- kdels='kubectl delete svc' alias -- kdelsa='kubectl delete sa' alias -- kdelsec='kubectl delete secret' alias -- kdelss='kubectl delete statefulset' alias -- kdi='kubectl describe ingress' alias -- kdic='kubectl describe ingressclass' alias -- kdj='kubectl describe job' alias -- kdno='kubectl describe node' alias -- kdns='kubectl describe namespace' alias -- kdp='kubectl describe pods' alias -- kdpv='kubectl describe pv' alias -- kdpvc='kubectl describe pvc' alias -- kdrs='kubectl describe replicaset' alias -- kds='kubectl describe svc' alias -- kdsa='kubectl describe sa' alias -- kdsec='kubectl describe secret' alias -- kdss='kubectl describe statefulset' alias -- kecj='kubectl edit cronjob' alias -- kecm='kubectl edit configmap' alias -- ked='kubectl edit deployment' alias -- keds='kubectl edit daemonset' alias -- kei='kubectl edit ingress' alias -- kej='kubectl edit job' alias -- keno='kubectl edit node' alias -- kens='kubectl edit namespace' alias -- kep='kubectl edit pods' alias -- kepvc='kubectl edit pvc' alias -- kers='kubectl edit replicaset' alias -- kes='kubectl edit svc' alias -- kess='kubectl edit statefulset' alias -- keti='kubectl exec -t -i' alias -- kg='kubectl get' alias -- kga='kubectl get all' alias -- kgaa='kubectl get all --all-namespaces' alias -- kgcj='kubectl get cronjob' alias -- kgcm='kubectl get configmaps' alias -- kgcma='kubectl get configmaps --all-namespaces' alias -- kgd='kubectl get deployment' alias -- kgda='kubectl get deployment --all-namespaces' alias -- kgds='kubectl get daemonset' alias -- kgdsa='kubectl get daemonset --all-namespaces' alias -- kgdsw='kgds --watch' alias -- kgdw='kgd --watch' alias -- kgdwide='kgd -o wide' alias -- kge='kubectl get events' alias -- kgew='kubectl get events --sort-by=".lastTimestamp" --watch' alias -- kgi='kubectl get ingress' alias -- kgia='kubectl get ingress --all-namespaces' alias -- kgic='kubectl get ingressclass' alias -- kgj='kubectl get job' alias -- kgn='kubectl get nodes --sort-by=.metadata.creationTimestamp' alias -- kgno='kubectl get nodes' alias -- kgnosl='kubectl get nodes --show-labels' alias -- kgns='kubectl get namespaces' alias -- kgp='kubectl get pods' alias -- kgpa='kubectl get pods --all-namespaces' alias -- kgpall='kubectl get pods --all-namespaces -o wide' alias -- kgpl='kgp -l' alias -- kgpn='kgp -n' alias -- kgprc='kubectl get pods --sort-by='\''.status.containerStatuses[0].restartCount'\' alias -- kgprca='kubectl get pods --all-namespaces --sort-by='\''.status.containerStatuses[0].restartCount'\' alias -- kgpsl='kubectl get pods --show-labels' alias -- kgpv='kubectl get pv' alias -- kgpvc='kubectl get pvc' alias -- kgpvca='kubectl get pvc --all-namespaces' alias -- kgpvcw='kgpvc --watch' alias -- kgpw='kgp --watch' alias -- kgpwide='kgp -o wide' alias -- kgrs='kubectl get replicaset' alias -- kgs='kubectl get svc' alias -- kgsa='kubectl get svc --all-namespaces' alias -- kgsec='kubectl get secret' alias -- kgseca='kubectl get secret --all-namespaces' alias -- kgss='kubectl get statefulset' alias -- kgssa='kubectl get statefulset --all-namespaces' alias -- kgssw='kgss --watch' alias -- kgsswide='kgss -o wide' alias -- kgsw='kgs --watch' alias -- kgswide='kgs -o wide' alias -- kl='kubectl logs' alias -- kl1h='kubectl logs --since 1h' alias -- kl1m='kubectl logs --since 1m' alias -- kl1s='kubectl logs --since 1s' alias -- klf='kubectl logs -f' alias -- klf1h='kubectl logs --since 1h -f' alias -- klf1m='kubectl logs --since 1m -f' alias -- klf1s='kubectl logs --since 1s -f' alias -- klt='kubectl logs -f' alias -- kn=kubens alias -- kpf='kubectl port-forward' alias -- krh='kubectl rollout history' alias -- krrd='kubectl rollout restart deployment' alias -- krrss='kubectl rollout restart statefulset' alias -- krsd='kubectl rollout status deployment' alias -- krsss='kubectl rollout status statefulset' alias -- kru='kubectl rollout undo' alias -- ksd='kubectl scale deployment' alias -- ksss='kubectl scale statefulset' alias -- ku=kustomize alias -- kub='kustomize build --enable-alpha-plugins --load-restrictor LoadRestrictionsNone' alias -- kubectl=kubecolor alias -- kx=kubectx alias -- l=lsd alias -- la='lsd -aF' alias -- ll='ls -lh' alias -- ln='ln -i' alias -- ls='lsd -lahtr' alias -- lsa='ls -lah' alias -- lstar='tar -tvf' alias -- md='mkdir -p' alias -- mv='mv -i' alias -- nano=nvim alias -- notepad.exe=nvim alias -- perms='stat -f "%A %Sp -> owner=%SHp group=%SMp other=%SLp"' alias -- pydocs='open https://docs.python.org/3.13/py-modindex.html' alias -- rd=rmdir alias -- reboot='sudo reboot' alias -- rm='rm -i' alias -- run-help=man alias -- tg=terragrunt alias -- tga='terragrunt apply' alias -- tgaA='terragrunt apply -auto-approve' alias -- tgas='terragrunt apply --terragrunt-source-update' alias -- tgasA='terragrunt apply --terragrunt-source-update -auto-approve' alias -- tgi='terragrunt init' alias -- tgis='terragrunt init --terragrunt-source-update' alias -- tglo='terragrunt providers lock -platform=linux_arm64 -platform=linux_amd64 -platform=darwin_amd64 -platform=darwin_arm6' alias -- tgo='terragrunt output' alias -- tgp='terragrunt plan' alias -- tgps='terragrunt plan --terragrunt-source-update' alias -- tkl='tsh kube ls' alias -- untar='tar -zxvf' alias -- vi=nvim alias -- which-command=whence # Check for rg availability if ! (unalias rg 2>/dev/null; command -v rg) >/dev/null 2>&1; then function rg { local _cc_bin="${CLAUDE_CODE_EXECPATH:-}" [[ -x $_cc_bin ]] || _cc_bin=$(command -v claude 2>/dev/null) if [[ ! -x $_cc_bin ]]; then command rg "$@"; return; fi if [[ -n $ZSH_VERSION ]]; then ARGV0=rg "$_cc_bin" "$@" elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "win32" ]]; then ARGV0=rg "$_cc_bin" "$@" elif [[ $BASHPID != $$ ]]; then exec -a rg "$_cc_bin" "$@" else (exec -a rg "$_cc_bin" "$@") fi } fi # Shadow find/grep with embedded bfs/ugrep unalias find 2>/dev/null || true unalias grep 2>/dev/null || true function find { local _cc_bin="${CLAUDE_CODE_EXECPATH:-}" [[ -x $_cc_bin ]] || _cc_bin=$(command -v claude 2>/dev/null) if [[ ! -x $_cc_bin ]]; then command find "$@"; return; fi if [[ -n $ZSH_VERSION ]]; then ARGV0=bfs "$_cc_bin" -regextype findutils-default "$@" elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "win32" ]]; then ARGV0=bfs "$_cc_bin" -regextype findutils-default "$@" elif [[ $BASHPID != $$ ]]; then exec -a bfs "$_cc_bin" -regextype findutils-default "$@" else (exec -a bfs "$_cc_bin" -regextype findutils-default "$@") fi } function grep { local _cc_bin="${CLAUDE_CODE_EXECPATH:-}" [[ -x $_cc_bin ]] || _cc_bin=$(command -v claude 2>/dev/null) if [[ ! -x $_cc_bin ]]; then command grep "$@"; return; fi if [[ -n $ZSH_VERSION ]]; then ARGV0=ugrep "$_cc_bin" -G --ignore-files --hidden -I --exclude-dir=.git --exclude-dir=.svn --exclude-dir=.hg --exclude-dir=.bzr --exclude-dir=.jj --exclude-dir=.sl "$@" elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "win32" ]]; then ARGV0=ugrep "$_cc_bin" -G --ignore-files --hidden -I --exclude-dir=.git --exclude-dir=.svn --exclude-dir=.hg --exclude-dir=.bzr --exclude-dir=.jj --exclude-dir=.sl "$@" elif [[ $BASHPID != $$ ]]; then exec -a ugrep "$_cc_bin" -G --ignore-files --hidden -I --exclude-dir=.git --exclude-dir=.svn --exclude-dir=.hg --exclude-dir=.bzr --exclude-dir=.jj --exclude-dir=.sl "$@" else (exec -a ugrep "$_cc_bin" -G --ignore-files --hidden -I --exclude-dir=.git --exclude-dir=.svn --exclude-dir=.hg --exclude-dir=.bzr --exclude-dir=.jj --exclude-dir=.sl "$@") fi } export PATH='/opt/homebrew/opt/findutils/libexec/gnubin:/Users/steve.briggs/.local/share/mise/installs/helm/3.17.1/bin:/Users/steve.briggs/.local/share/mise/installs/kubecolor/0.5.3/bin:/Users/steve.briggs/.local/share/mise/installs/terraform/1.3.10/bin:/Users/steve.briggs/.local/share/mise/installs/terraform-docs/0.18.0/bin:/Users/steve.briggs/.local/share/mise/installs/cilium-cli/0.16.16/bin:/Users/steve.briggs/.local/share/mise/installs/go/1.23.12/bin:/Users/steve.briggs/.local/share/mise/installs/vault/1.18.3/bin:/Users/steve.briggs/.local/share/mise/installs/awscli/2.25.13/bin:/Users/steve.briggs/.local/share/mise/installs/kustomize/4.5.7/bin:/Users/steve.briggs/.local/share/mise/installs/kubectl/1.30.2/bin:/Users/steve.briggs/.local/share/mise/installs/kubectx/0.9.5/bin:/Users/steve.briggs/.local/share/mise/installs/jq/1.7.1/bin:/Users/steve.briggs/.local/share/mise/installs/yq/4.44.2/bin:/Users/steve.briggs/.local/share/mise/installs/ghorg/1.9.12/bin:/Users/steve.briggs/.local/share/mise/installs/lsd/1.2.0/bin:/Users/steve.briggs/.local/share/mise/installs/direnv/2.34.0/bin:/Users/steve.briggs/.local/share/mise/installs/ripgrep/15.1.0/bin:/Users/steve.briggs/.local/share/mise/installs/aws-vault/7.2.0/bin:/Users/steve.briggs/.local/share/mise/installs/1password-cli/2.29.0/bin:/Users/steve.briggs/.local/share/mise/installs/python/3.12.4/bin:/Users/steve.briggs/.local/share/mise/installs/dagger/0.13.6/bin:/Users/steve.briggs/.local/share/mise/installs/terragrunt/0.77.13/bin:/opt/homebrew/bin:/usr/local/bin:/Users/steve.briggs/.local/bin:/opt/homebrew/bin:/usr/local/bin:/Users/steve.briggs/.local/bin:/Users/steve.briggs/.local/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/pmk/env/global/bin:/usr/local/munki:/Users/steve.briggs/.cargo/bin:/Applications/Ghostty.app/Contents/MacOS:/Users/steve.briggs/.cargo/bin:/Users/steve.briggs/.cargo/bin:/Users/steve.briggs/.local/bin/custom:/Users/steve.briggs/.pyenv/bin:/Users/steve.briggs/.config/cloud-ops/scripts:/opt/homebrew/opt/gnu-sed/libexec/gnubin:/usr/local/opt/openssl/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/curl/bin:/opt/homebrew/opt/gnu-sed/libexec/gnubin:/opt/homebrew/opt/gnu-sed/libexec/gnubin:/opt/homebrew/opt/findutils/libexec/gnubin:/Users/steve.briggs/.local/bin/custom:/Users/steve.briggs/.pyenv/bin:/Users/steve.briggs/.config/cloud-ops/scripts:/opt/homebrew/opt/gnu-sed/libexec/gnubin:/usr/local/opt/openssl/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/curl/bin:/Users/steve.briggs/.krew/bin:/Users/steve.briggs/.bin:/Users/steve.briggs/go/bin/:/private/var/folders/ky/m6p32md91_n2q6z94fdn8fsw0000gq/T/AppTranslocation/F252CD76-5A71-4D7F-8826-12175DB43E32/d/Visual Studio Code.app/Contents/Resources/app/bin:/Users/steve.briggs/.krew/bin:/Users/steve.briggs/.bin:/Users/steve.briggs/go/bin/:/private/var/folders/ky/m6p32md91_n2q6z94fdn8fsw0000gq/T/AppTranslocation/F252CD76-5A71-4D7F-8826-12175DB43E32/d/Visual Studio Code.app/Contents/Resources/app/bin'