ohmyzsh: compdef: unknown command or service: git
zsh 4.3.12 lastest clone of oh-my-zsh
After manually installing it (not using the wget method) whenever I login I get a load of code outputted to iterm2.
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 -gA _comps _services _patcomps _postpatcomps
typeset -gA _compautos
typeset -gA _lastcomp
if [[ -n $_i_dumpfile ]]
then
typeset -g _comp_dumpfile="$_i_dumpfile"
else
typeset -g _comp_dumpfile="${ZDOTDIR:-$HOME}/.zcompdump"
fi
typeset -ga _comp_options
_comp_options=(bareglobqual extendedglob glob multibyte nullglob rcexpandparam unset NO_allexport NO_aliases NO_cshnullglob NO_cshjunkiequotes NO_errexit NO_globsubst NO_histsubstpattern NO_ignorebraces NO_kshglob NO_ksharrays NO_kshtypeset NO_markdirs NO_octalzeroes NO_shwordsplit NO_shglob NO_warncreateglobal)
typeset -g _comp_setup='local -A _comp_caller_options;
_comp_caller_options=(${(kv)options});
setopt localoptions localtraps ${_comp_options[@]};
local IFS=$'\'\ \\t\\r\\n\\0\''
exec </dev/null;
trap - ZERR
local -a reply
local REPLY'
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" | 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" | 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
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
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' | 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
}
edit-command-line () {
# undefined
builtin autoload -XU
}
url-quote-magic () {
# undefined
builtin autoload -XU
}
compdef: unknown command or service: git
compdef: unknown command or service: git
compdef: unknown command or service: git
compdef: unknown command or service: git
compdef: unknown command or service: git
compdef: unknown command or service: git
Tab complete doesn’t work, the git plugin seems to be working and themes are also working. This is my 5th install of oh-my-zsh and I’ve not seen this issue before.
About this issue
- Original URL
- State: closed
- Created 13 years ago
- Comments: 86 (10 by maintainers)
Commits related to this issue
- Repair Cygwin zsh path permissions on startup. Cygwin installs top-level zsh directories (e.g., "/usr/share/zsh") with insecure permissions allowing group writability. Since compinit() always ignores... — committed to leycec/oh-my-zsh by leycec 9 years ago
- Completion insecurities handled on startup. Completion-dependent directories with insecure permissions or ownership (e.g., group or other writability) are now detected, reported, and sanitized on OMZ... — committed to leycec/oh-my-zsh by leycec 9 years ago
- Completion insecurities handled on startup. Completion-dependent directories with insecure permissions or ownership (e.g., group or other writability) are now detected, reported, and sanitized on OMZ... — committed to kirb/oh-my-zsh by leycec 9 years ago
- Completion insecurities handled on startup. Completion-dependent directories with insecure permissions or ownership (e.g., group or other writability) are now detected, reported, and sanitized on OMZ... — committed to Spirotot/oh-my-zsh by leycec 9 years ago
- Completion insecurities handled on startup. Completion-dependent directories with insecure permissions or ownership (e.g., group or other writability) are now detected, reported, and sanitized on OMZ... — committed to NobbZ/oh-my-zsh by leycec 9 years ago
- Completion insecurities handled on startup. Completion-dependent directories with insecure permissions or ownership (e.g., group or other writability) are now detected, reported, and sanitized on OMZ... — committed to DennisDenuto/oh-my-zsh by leycec 9 years ago
- [Fix #630] Zsh v4.3.17 is the minimum required — committed to ericlake/oh-my-zsh by sorin-ionescu 10 years ago
- Completion insecurities handled on startup. Completion-dependent directories with insecure permissions or ownership (e.g., group or other writability) are now detected, reported, and sanitized on OMZ... — committed to fforw/oh-my-zsh by leycec 9 years ago
- Completion insecurities handled on startup. Completion-dependent directories with insecure permissions or ownership (e.g., group or other writability) are now detected, reported, and sanitized on OMZ... — committed to spiliopoulos/zsh-config by leycec 9 years ago
On Mac OS X 10.8.5 with zsh 5.0.2 I encountered the error
I solved it by combining the suggestions in this thread, but, all steps were required. I was able to reproduce the situation in which it occured multiple times and test each time. Specifically the issue is introduced for me by switching from the zsh included with mac os x to 5.0.2.
“rm -f ~/.zcompdump; compinit” fixed my issues.
To make more generic what @ajorpheus put above (you can copy and paste this with the comments, they will not run, but will just show up in your prompt command history:
It is not recommended to run this all the time, as it will slow down your shell startup a bit and completely negate the benefits of the dump files. If you don’t want them to get generated and therefore corrupted, just replace wherever compinit gets called in the start scripts with compinit -D to avoid creating a dump file at all.
Just for the record - adding gitfast fixed this issue for me
plugins=(git gitfast)
When I had similar issue with oh-my-zsh + zsh on cygwin I used this
rm -f ~/.zcompdump; compinitand everything started to work again, tho I don’t know if it will help in your case.Try running this and see if it fixes it for you:
compaudit | xargs chmod g-wIt did for me.
Run
upgrade_oh_my_zshfor a fix.I had this problem with
sudo -sI fixed with :
I just got this error on today’s update:
~/.oh-my-zsh/lib/directories.zsh:32: command not found: compdefI met this issue after migrating data from old Air to a new Pro via migration assistant.
Fixed the issue after running below commands from one of above comments.
I ran
zsh -xv &> >(tee ~/omz-debug.log 2>/dev/null)and searched for the text of the errors I receivedFor this error:
I fixed it in the file
~/.nvm/bash_completionon line 96, i commented out this linecomplete -o default -F __nvm nvmFor this error:
I had to comment out a few lines around
.rvm/scripts/initializeI now noticed that .zcompdump was named .zcompdump-modhelius-dell-5.0.2 and this file was almost empty. After running compinit I noticed that a file only named .zcompdump was created, taking the content of this file and copying it into .zcompdump-modhelius-dell-5.0.2 fixed the problem for me.
@Eustachy
rm -f ~/.zcompdump; compinitworked like a charm. Thanks a lot. 👍The code being outputted seems to come from this line: compinit -i
This thread is relevant: http://www.zsh.org/mla/users/2007/msg00722.html
Specifically the last email in that thread that suggests deleting .zcompdump seemed to work for me. I’m not sure if it’s related, but I did change my locale from something like latin9 to en_CA.utf-8 before doing this.
I figured out the problem I was experiencing. I had installed zsh view homebrew on OS X. In the process of moving to ZSH I didn’t realize my path got whacked out and it was using the Apple-supplied version of ZSH and not the one I had built.
Fix path, re-chsh, happiness ensued.
So I ran through all of the fixes and none of them worked for me… my error was slightly different. It wasn’t from a complete function call but an eval call…
(eval):6: command not found: compdefSo after trying everything else, I started looking into my
~/.zshrcfile for anyevalcommands. I noticed that oh-my-zsh had put all eval type commands at the bottom of the file wrapped in if statements to ensure the command existed (which mine do/did exist, but can’t be too careful).I found two that were being called before oh-my-zsh was being initialized and decided to move those to the bottom of the file. After moving them and wrapping them in if statements for future proofing my configuration these are the two I moved…
It is possible only one of these was causing the issue, but I moved all
evalrelated statements to the bottom of my~/.zshrcfile.I hope this helps someone and saves some time!
This is what worked for me on Cygwin, Windows 7, zsh :
removing the compdump also didn’t work, but it looks like it was a syntax error in my .zshrc file.
i had my plugins listed as a comma separated list:
plugins=(git, docker)and the error message was exactly correct, with the dangling comma:
[oh-my-zsh] plugin 'git,' not foundremoving the comma fixes the error. hopefully that’s helpful for someone else out there. it’s one of those typos that’s hard to see to begin with, and harder to recognize when you spend most of your day working in scripts or languages where a space delineated list would be the error.
Try
rm $ZSH_COMPDUMP, thenexec zsh. See the wiki FAQ for details.Thanks @pfdai ! Adding gitfast did it for me too! None of the other things worked for me!
I just comment
in .zshrc and fix it
I had a similar problem with babun on windows 7, using tmux gave me that error. I solved changing this: in
.oh-my-zsh/oh-my-zsh.shI don’t know the implications of this mod, but it seems to work now
I’m having the same issue as well. The above recommendation had no change as compaudit did not print out any lines.
Any other theories?