Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Random junk dumped above my first prompt #1759

Closed
lexicalunit opened this issue Nov 7, 2019 · 2 comments

Comments

@lexicalunit
Copy link

@lexicalunit lexicalunit commented Nov 7, 2019

Description

Whenever I start a new shell I get the following dumped to my terminal before the first prompt:

add-zsh-hook () {
	# undefined
	builtin autoload -XUz
}
add-zsh-trap () {
	# undefined
	builtin autoload -XUz
}
bracketed-paste-url-magic () {
	# undefined
	builtin autoload -XUz
}
compaudit () {
	# undefined
	builtin autoload -XUz
}
compdump () {
	# undefined
	builtin autoload -XUz
}
compinit () {
	emulate -L zsh
	setopt extendedglob
	typeset _i_dumpfile _i_files _i_line _i_done _i_dir _i_autodump=1
	typeset _i_tag _i_file _i_addfiles _i_fail=ask _i_check=yes _i_name
	while [[ $# -gt 0 && $1 = -[dDiuC] ]]
	do
		case "$1" in
			(-d) _i_autodump=1
				shift
				if [[ $# -gt 0 && "$1" != -[dfQC] ]]
				then
					_i_dumpfile="$1"
					shift
				fi ;;
			(-D) _i_autodump=0
				shift ;;
			(-i) _i_fail=ign
				shift ;;
			(-u) _i_fail=use
				shift ;;
			(-C) _i_check=
				shift ;;
		esac
	done
	typeset -gHA _comps _services _patcomps _postpatcomps
	typeset -gHA _compautos
	typeset -gHA _lastcomp
	if [[ -n $_i_dumpfile ]]
	then
		typeset -g _comp_dumpfile="$_i_dumpfile"
	else
		typeset -g _comp_dumpfile="${ZDOTDIR:-$HOME}/.zcompdump"
	fi
	typeset -gHa _comp_options
	_comp_options=(bareglobqual extendedglob glob multibyte multifuncdef nullglob rcexpandparam unset NO_allexport NO_aliases NO_cshnullglob NO_cshjunkiequotes NO_errexit NO_errreturn NO_globassign NO_globsubst NO_histsubstpattern NO_ignorebraces NO_ignoreclosebraces NO_kshglob NO_ksharrays NO_kshtypeset NO_markdirs NO_octalzeroes NO_posixbuiltins NO_posixidentifiers NO_shwordsplit NO_shglob NO_warnnestedvar NO_warncreateglobal)
	typeset -gH _comp_setup='local -A _comp_caller_options;
             _comp_caller_options=(${(kv)options[@]});
             setopt localoptions localtraps localpatterns ${_comp_options[@]};
             local IFS=$'\'\ \\t\\r\\n\\0\'';
             builtin enable -p \| \~ \( \? \* \[ \< \^ \# 2>&-;
             exec </dev/null;
             trap - ZERR;
             local -a reply;
             local REPLY;
             local REPORTTIME;
             unset REPORTTIME'
	typeset -ga compprefuncs comppostfuncs
	compprefuncs=()
	comppostfuncs=()
	: $funcstack
	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 -Uz "$func"
			shift
			case "$type" in
				(widgetkey) while [[ -n $1 ]]
					do
						if [[ $# -lt 3 ]]
						then
							print -u2 "$0: compdef -K requires <widget> <comp-widget> <key>"
							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
	}
	typeset _i_wdirs _i_wfiles
	_i_wdirs=()
	_i_wfiles=()
	autoload -Uz compaudit
	if [[ -n "$_i_check" ]]
	then
		typeset _i_q
		if ! eval compaudit
		then
			if [[ -n "$_i_q" ]]
			then
				if [[ "$_i_fail" = ask ]]
				then
					if ! read -q "?zsh compinit: insecure $_i_q, run compaudit for list.
Ignore insecure $_i_q and continue [y] or abort compinit [n]? "
					then
						print -u2 "$0: initialization aborted"
						unfunction compinit compdef
						unset _comp_dumpfile _comp_secure compprefuncs comppostfuncs _comps _patcomps _postpatcomps _compautos _lastcomp
						return 1
					fi
					_i_wfiles=()
					_i_wdirs=()
				else
					(( $#_i_wfiles )) && _i_files=("${(@)_i_files:#(${(j:|:)_i_wfiles%.zwc})}")
					(( $#_i_wdirs )) && _i_files=("${(@)_i_files:#(${(j:|:)_i_wdirs%.zwc})/*}")
				fi
			fi
			typeset -g _comp_secure=yes
		fi
	fi
	autoload -Uz compdump compinstall
	_i_done=''
	if [[ -f "$_comp_dumpfile" ]]
	then
		if [[ -n "$_i_check" ]]
		then
			IFS=$' \t' read -rA _i_line < "$_comp_dumpfile"
			if [[ _i_autodump -eq 1 && $_i_line[2] -eq $#_i_files && $ZSH_VERSION = $_i_line[4] ]]
			then
				builtin . "$_comp_dumpfile"
				_i_done=yes
			fi
		else
			builtin . "$_comp_dumpfile"
			_i_done=yes
		fi
	fi
	if [[ -z "$_i_done" ]]
	then
		typeset -A _i_test
		for _i_dir in $fpath
		do
			[[ $_i_dir = . ]] && continue
			(( $_i_wdirs[(I)$_i_dir] )) && continue
			for _i_file in $_i_dir/^([^_]*|*~|*.zwc)(N)
			do
				_i_name="${_i_file:t}"
				(( $+_i_test[$_i_name] + $_i_wfiles[(I)$_i_file] )) && continue
				_i_test[$_i_name]=yes
				IFS=$' \t' read -rA _i_line < $_i_file
				_i_tag=$_i_line[1]
				shift _i_line
				case $_i_tag in
					(\#compdef) if [[ $_i_line[1] = -[pPkK](n|) ]]
						then
							compdef ${_i_line[1]}na "${_i_name}" "${(@)_i_line[2,-1]}"
						else
							compdef -na "${_i_name}" "${_i_line[@]}"
						fi ;;
					(\#autoload) autoload -Uz "$_i_line[@]" ${_i_name}
						[[ "$_i_line" != \ # ]] && _compautos[${_i_name}]="$_i_line"  ;;
				esac
			done
		done
		if [[ $_i_autodump = 1 ]]
		then
			compdump
		fi
	fi
	for _i_line in complete-word delete-char-or-list expand-or-complete expand-or-complete-prefix list-choices menu-complete menu-expand-or-complete reverse-menu-complete
	do
		zle -C $_i_line .$_i_line _main_complete
	done
	zle -la menu-select && zle -C menu-select .menu-select _main_complete
	bindkey '^i' | IFS=$' \t' read -A _i_line
	if [[ ${_i_line[2]} = expand-or-complete ]] && zstyle -a ':completion:' completer _i_line && (( ${_i_line[(i)_expand]} <= ${#_i_line} ))
	then
		bindkey '^i' complete-word
	fi
	unfunction compinit compaudit
	autoload -Uz compinit compaudit
	return 0
}
compinstall () {
	# undefined
	builtin autoload -XUz
}
diff () {
	# undefined
	builtin autoload -XUz
}
dut () {
	# undefined
	builtin autoload -XUz
}
edit-command-line () {
	# undefined
	builtin autoload -XUz
}
is-at-least () {
	emulate -L zsh
	local IFS=".-" min_cnt=0 ver_cnt=0 part min_ver version order
	min_ver=(${=1})
	version=(${=2:-$ZSH_VERSION} 0)
	while (( $min_cnt <= ${#min_ver} ))
	do
		while [[ "$part" != <-> ]]
		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
}
make () {
	# undefined
	builtin autoload -XUz
}
prep () {
	# undefined
	builtin autoload -XUz
}
psub () {
	# undefined
	builtin autoload -XUz
}
url-quote-magic () {
	# undefined
	builtin autoload -XUz
}
wdiff () {
	# undefined
	builtin autoload -XUz
}
zsh-help () {
	# undefined
	builtin autoload -XUz
}

Expected behavior

None of that should be there. If I remove the following from my .zshrc file, then it resolves the issue, but then of course zprezto isn't correctly set up anymore.

if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
  source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
fi

Actual behavior

See above.

Steps to Reproduce

  1. Start a new shell.

Versions

  • Prezto commit: 0af28e7
  • ZSH version: zsh 5.7.1 (x86_64-apple-darwin18.2.0)
  • OS information: macOS 10.14.6
@lexicalunit

This comment has been minimized.

Copy link
Author

@lexicalunit lexicalunit commented Nov 7, 2019

It seems to be related to compinit somehow. This resolved it:

rm -f ~/.zcompdump

However, now my docker-compose completions no longer work. To get them working I was adding the following lines to my .zhsrc (with the docker-compose completions being stored in the ~/.zshrc/completion directory).

fpath=(~/.zsh/completion $fpath)
autoload -Uz compinit && compinit -i

But that just causes the random junk to come back. It remains even if I then comment those lines out.

Does zprezto not support compinit?

@lexicalunit

This comment has been minimized.

Copy link
Author

@lexicalunit lexicalunit commented Nov 7, 2019

Adding the lines I mentioned in my last comment to .zprofile instead of .zshrc seems to have resolved the issue.

@lexicalunit lexicalunit closed this Nov 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.