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

command line throwing errors #1

Closed
yoshuawuyts opened this issue Jun 26, 2013 · 16 comments
Closed

command line throwing errors #1

yoshuawuyts opened this issue Jun 26, 2013 · 16 comments

Comments

@yoshuawuyts
Copy link

Nothing that really hampers my workflow, but every time I start the command line it spews up the following:

add-zsh-hook () {
        emulate -L zsh
        local -a hooktypes
        hooktypes=(chpwd precmd preexec periodic zshaddhistory zshexit zsh_directory_name)
        local usage="Usage: $0 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
                                set -A $hook ${(P)hook} $fn
                        fi
                else
                        set -A $hook $fn
                fi
                autoload $autoopts -- $fn
        fi
}
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_ignoreclosebraces 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" | 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
}
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
compdef: unknown command or service: git
➜  ~

Any idea as to what may cause this?

@haithembelhaj
Copy link
Owner

That looks horrible :(
have you tried installing git manually? (because of the last lines)
But It could be also related to this issue.

@yoshuawuyts
Copy link
Author

Hm, it looks like it's related indeed. Call me lazy, but it feels as if getting cygwin + zsh to run properly on multiple machines is not an easy task.

@renatofq
Copy link

same issue.

@iernie
Copy link

iernie commented Aug 26, 2013

As stated in the other issue thread, running rm -f ~/.zcompdump; compinit seems to fix it.

@yoshuawuyts
Copy link
Author

nice, thanks.

@earthday
Copy link

Hi, @yoshuawuyts , Did you fixed this issue by @iernie solution? I tried that solution, but it does not work.

@earthday
Copy link

I use @twilek's solution which is in ohmyzsh/ohmyzsh#630 fixed this issue.

@yoshuawuyts
Copy link
Author

@earthday great you solved it! I ditched zsh because installing it between all my machines caused way too many issues, despite it being a great CLI.

@iernie
Copy link

iernie commented Dec 21, 2013

I haven't had any issues with zsh after this one. Use it at work every day and works great now.

@juantm
Copy link

juantm commented Dec 22, 2013

I have this same problem, but in my Cygwin64 installed and not any of the solutions works. Not 'rm -f ~/.zcompdump; compinit' or 'compaudit | xargs chmod g-w'

@earthday
Copy link

@juantm Try method I mentioned. In my PC, I use cygwin x86 version on Win8. There are two files in cygwin home folder, one is ".zcompdump", another is ".zcompdump-BrightChen-PC-5.0.2". Copy the first file's content into the second one. This solution fixed my problem.
-----In my PC, I did the following------

cp ~/.zcompdump ~/.zcompdump-BrightChen-PC-5.0.2

@juantm
Copy link

juantm commented Dec 24, 2013

Thanks, I finally resolved the problem with just running 'zsh -l' without
the '.zshrc' template file and completing the default wizard. Then when the
wizard finished I simply copied the template given by oh-my-zsh over the
generated '.zshrc'. That worked for me.
Maybe my main problem was to change my user home and that complicated
everything.

Juan Toro Marty
Analista de Sistemas
Desarrollador Web y Administrador Linux

2013/12/22 Bright Chen notifications@github.com

@juantm https://github.com/juantm Try method I mentioned. In my PC, I
use cygwin x86 version on Win8. There are two files in cygwin home folder,
one is ".zcompdump", another is ".zcompdump-<>-<>". Copy the first file's
content into the second one. This solution fixed my problem.
-----In my PC, I did the following------
cp ~/.zcompdump ~/.zcompdump-BrightChen-PC-5.0.2


Reply to this email directly or view it on GitHubhttps://github.com//issues/1#issuecomment-31081369
.

@aldovc
Copy link

aldovc commented Apr 2, 2014

Had the same issue here: Cygwin + Oh-my-zsh on Win 8.1 x64. @twilek's solution worked like a charm.

@ghost
Copy link

ghost commented Jun 4, 2014

I have the same issue: Cygwin x86 + oh-my-zsh on Windows 7 x64.
@twilek's solution also worked for me!

@josephliccini
Copy link

thank you @earthday your solution fixed the issue for me!!

@jpssff
Copy link

jpssff commented Jan 19, 2015

thanks @earthday , it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants