Ohmyzsh: compdef: perintah atau layanan tidak dikenal: git

Dibuat pada 26 Sep 2011  ·  86Komentar  ·  Sumber: ohmyzsh/ohmyzsh

zsh 4.3.12
klon terbaru dari oh-my-zsh

Setelah menginstalnya secara manual (tidak menggunakan metode wget) setiap kali saya masuk, saya mendapatkan banyak kode yang dikeluarkan ke 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 tidak berfungsi, plugin git tampaknya berfungsi dan tema juga berfungsi. Ini adalah instalasi oh-my-zsh saya yang ke-5 dan saya belum pernah melihat masalah ini sebelumnya.

Komentar yang paling membantu

Di Mac OS X 10.8.5 dengan zsh 5.0.2 saya menemukan kesalahan

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

Saya menyelesaikannya dengan menggabungkan saran di utas ini, tetapi, semua langkah diperlukan. Saya dapat mereproduksi situasi di mana itu terjadi beberapa kali dan menguji setiap kali. Secara khusus masalah ini diperkenalkan untuk saya dengan beralih dari zsh yang disertakan dengan mac os x ke 5.0.2.

compaudit | sudo xargs chmod g-w
compaudit | sudo xargs chown root
rm ~/.zcompdump*
compinit

Semua 86 komentar

Kesalahan compdef sama seperti pada #399, tetapi itu disebabkan oleh versi zsh yang lebih lama yang tidak memiliki penyelesaian git.

Coba jalankan ini dan lihat apakah itu memperbaikinya untuk Anda:

compaudit | xargs chmod g-w

Itu untuk saya.

Saya mengalami masalah yang sama juga. Rekomendasi di atas tidak berubah karena compaudit tidak mencetak baris apa pun.

Ada teori lain?

Berikut sedikit info lebih lanjut tentang sistem yang saya gunakan saat ini:

Mac OS X 10.5.8
zsh 4.3.4 (i386-apple-darwin9.0)
iTerm2 Build 1.0.0.20111020

Konfirmasikan bahwa pada N900 Maemo:

$ uname -a
Linux Nokia-N900 2.6.28.10-power49 #1 PREEMPT Jum 18 Nov 23:59:53 EET 2011 armv7l tidak diketahui

$ zsh -v
zsh 4.3.10 (lengan-tidak diketahui-linux-gnu)

Saya menemukan masalah yang saya alami. Saya telah menginstal zsh view homebrew di OS X. Dalam proses pindah ke ZSH, saya tidak menyadari bahwa jalur saya rusak dan menggunakan versi ZSH yang disediakan Apple dan bukan yang saya buat.

Perbaiki jalan, re-chsh, kebahagiaan pun terjadi.

Saya mengalami masalah yang sama ini. Saya menggunakan zsh 4.3.15 yang diinstal di /usr/local/bin/zsh dan git 1.7.3.2

Ini ada di mesin Centos 5.7 dan masalah terjadi dengan pengguna biasa tetapi tidak dengan pengguna root.

Anehnya saya memiliki instalasi yang identik pada mesin Centos 6 yang berfungsi dengan baik.

Anda tidak dapat benar-benar menyebut dua instalasi CentOS 5.7 dan 6.X serupa identik. Juga, apakah Anda yakin bahwa pengguna non-root Anda menggunakan zsh 4.3.15 yang diinstal di /usr/local/bin/zsh? Ada tiga perintah yang dapat Anda jalankan untuk memverifikasi:

echo $SHELL
which zsh
zsh --version

Saya memiliki masalah di mana saya pikir saya telah menginstal versi yang benar, tetapi cara jalur saya di mana saya menggunakan sistem menginstal versi ZSH, dan bukan yang saya instal.

Saya memiliki masalah yang sama dengan Arch Linux
zsh 4.3.15

audit | xargs chmod gw
zsh: perintah tidak ditemukan: compaudit
chmod: operan hilang setelah `g-w'

Saya juga melihat masalah ini, saat menjalankan zsh:

zsh 4.3.17 (x86_64-apple-darwin11.3.0)
Darwin ix.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64

@excepttheweasel apa yang echo $SHELL berikan kepada Anda? Versi apa yang Anda dapatkan saat menjalankan executable itu?

gema $SHELL =>

/usr/local/bin/zsh

Yang versi 4.3.17 seperti yang diposting di atas, disediakan oleh homebrew.

Sepertinya kami menjalankan konfigurasi yang identik. Milik saya sepertinya berfungsi di luar kotak ketika saya mengatur homebrew dan oh-my-zsh di Air saya.

Saya juga mengalami masalah ini di salah satu server linux yang saya gunakan. Ia bekerja pada server linux yang berbeda dan dua komputer Apple yang berbeda. Saya juga menggunakan versi yang saya kompilasi (5.0.0).

Kode yang dikeluarkan tampaknya berasal dari baris ini:
compinit -i

Utas ini relevan:
http://www.zsh.org/mla/users/2007/msg00722.html

Khususnya email terakhir di utas yang menyarankan penghapusan .zcompdump sepertinya berhasil untuk saya. Saya tidak yakin apakah ini terkait, tetapi saya memang mengubah lokal saya dari sesuatu seperti latin9 ke en_CA.utf-8 sebelum melakukan ini.

saya memiliki sesuatu yang serupa.
zsh 5.0.0 (x86_64-apple-darwin11.4.0)
oh-myzsh (latest update)
plugin git yang diaktifkan

Saya mendapatkan kesalahan Error: compdef: unknown command or service: git
pelengkapan otomatis tampaknya dinonaktifkan
Ketika saya menonaktifkan plugin git, kesalahannya hilang tetapi pelengkapan otomatis masih mati

compaudit | xargs chmod g-w tidak memperbaiki masalah
Ada ide?

Dan hal yang sama untuk saya.

➜ ~ zsh --version 2012-12-07 11:04:51 CET zsh --version zsh 4.3.12 (i686-pc-cygwin)

menarik oh-my-zsh semenit yang lalu hanya untuk memastikan.

Ketika saya memiliki masalah serupa dengan oh-my-zsh + zsh di cygwin saya menggunakan rm -f ~/.zcompdump; compinit dan semuanya mulai berfungsi kembali, meskipun saya tidak tahu apakah itu akan membantu dalam kasus Anda.

Saya bisa _bersumpah_ Saya sudah melakukannya dua kali. Entah bagaimana, sekarang itu membantu.

Saya memiliki masalah serupa. Saya menjalankan OSX 10.5.8. Saya memutakhirkan ke 10.6.3 dan saya tidak lagi menerima kesalahan "compdef: perintah atau layanan tidak dikenal: git".

@Eustachy instruksi bekerja dengan baik untuk saya.

"rm -f ~/.zcompdump; compinit" memperbaiki masalah saya.

Saya mengalami masalah ini dengan sudo -s

saya perbaiki dengan:

compaudit | xargs chmod g-w
compaudit | xargs chown root

@Eustachy rm -f ~/.zcompdump; compinit bekerja seperti pesona.
Terima kasih banyak. :+1:

@Eustachy Terima kasih banyak! :kue:

@Eustachy rm -f ~/.zcompdump; compinit berhasil, terima kasih!

@Eustachy Terima kasih!

compaudit | xargs chmod g-w bekerja untuk saya di Lion :+1:

rm -f ~/.zcompdump; compinit gagal update terbaru di cygwin, ada bantuan?

Di Mac OS X 10.8.5 dengan zsh 5.0.2 saya menemukan kesalahan

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

Saya menyelesaikannya dengan menggabungkan saran di utas ini, tetapi, semua langkah diperlukan. Saya dapat mereproduksi situasi di mana itu terjadi beberapa kali dan menguji setiap kali. Secara khusus masalah ini diperkenalkan untuk saya dengan beralih dari zsh yang disertakan dengan mac os x ke 5.0.2.

compaudit | sudo xargs chmod g-w
compaudit | sudo xargs chown root
rm ~/.zcompdump*
compinit

@nnadboralski Anda pak, adalah penyelamat hidup.
Terima kasih banyak telah meluangkan waktu untuk memberikan solusi Anda di sini.

@nnadboralski Anda menyelamatkan hari saya!
Saya menambahkan baris-baris ini ke file zshrc.

@nnadboralski Hebat! Berhasil!

@fhoshino sama untuk saya

@robbyrussell ketika saya menjalankan ini di cygwin ia menanyakan pertanyaan ini.

~ rm -f ~/.zcompdump; kompit
zsh compinit: direktori tidak aman, jalankan compaudit untuk daftar.
Abaikan direktori yang tidak aman dan lanjutkan [y] atau batalkan compinit [n]?

Saya mendapatkan masalah ini di Cygwin 64bit pada mesin Windows 8, tetapi tidak mendapatkannya ketika saya melakukan instalasi yang sama pada mesin Windows 7 yang agak aneh. Tidak ada perbaikan di atas yang berfungsi untuk saya. Saya juga mendapatkan pertanyaan yang sama dengan @jitendravyas

Sekarang saya perhatikan bahwa .zcompdump bernama .zcompdump-modhelius-dell-5.0.2 dan file ini hampir kosong. Setelah menjalankan compinit, saya perhatikan bahwa file yang hanya bernama .zcompdump telah dibuat, mengambil konten file ini dan menyalinnya ke .zcompdump-modhelius-dell-5.0.2 memperbaiki masalah bagi saya.

@twilek Terima kasih. itu memperbaiki masalahnya sekarang

Saya mendapatkan kesalahan yang sama pada Fedora17 saya, versi zsh saya adalah 5.0.2. Saat membuka zsh, ini akan menampilkan:

compdef: unknown command or service: git
/home/fedora/.oh-my-zsh/plugins/git/git.plugin.zsh:152: parse error near `\n'

Saya memperbaiki masalah dengan cara ini
sudo mv /etc/{zshenv,zshrc}

MACOS 10.8.5

Terima kasih, @twilek , solusi Anda memperbaiki masalah saya.

Ini terjadi pada saya di cygwin. Ada lebih dari satu file compdump di ~/ (Satu dengan tanggal dan nama pengguna saya di nama file), solusi dari @nnadboralski menghapus -semua- file ini adalah tiketnya. Terima kasih!

Ya, @twilek. Cygwin di Windows 8.1 64 bit. Masalah terpecahkan sekarang. Terima kasih!

Terima kasih @twilek , perbaiki masalah saya. Cygwin (versi: 2.831 32-bit) di Windows 7

@twilek Terima kasih~, \ Anda menyelamatkan saya. [Menang 8.1 x64] [zsh 5.0.2]

Hai Semua, ini yang telah saya lakukan:
~ cd ~
~ ls -l .z*
-rw-rw-r-- 1 Tidak ada 36514 2月 17 21:39 .zcompdump
-rw-rw-r-- 1 Tidak ada 36514 2月 17 21:43 .zcompdump-hom-pc-i5-5.0.2
~ cat .zcompdump > .zcompdump-hom-pc-i5-5.0.2

Inilah yang berhasil bagi saya di Cygwin, Windows 7, zsh :

  1. Saya memiliki dua file .zcompdump. Menyalin konten .zcompdump ke .zcompdump_xxxx
  2. Di .zshrc saya, rekatkan yang berikut ini di bagian akhir:
compaudit | xargs -I % chmod g-w "%"
compaudit | xargs -I % chown PUT_USERNAME_HERE "%"
rm ~/.zcompdump*
compinit

Saran di sini sebagian besar berfungsi di bawah Cygwin, tetapi penyelesaiannya tidak berfungsi sama seperti sebelumnya.

Secara khusus saya memiliki beberapa entri serupa (example-dev.example.com, example-stage.example.com, dll)

ini digunakan untuk menyelesaikan seperti:
ssh mantan
contoh ssh-
ssh contoh-d
ssh contoh-dev.example.com

tetapi sebaliknya sekarang selalu menyelesaikan satu entri yang bahkan tidak ada di bagian atas daftar.

@smiller171 ini mungkin karena penyelesaian kustom ssh dari host telah dihapus demi default zsh. Coba kembalikan PR #2602 menggunakan git revert 71d9420

@ajorpheus : Saya tidak tahu apa yang dilakukan compaudit | xargs itu, tetapi beberapa baris terakhir hapus saja file .zcomdump* dan buat ulang setiap saat. Anda seharusnya baik-baik saja menghapusnya begitu saya pikir

@mcornella Dir mana git repo disimpan sehingga saya dapat kembali?

Cukup cd ke direktori oh-my-zsh dan kembalikan komit itu: cd $ZSH && git revert 71d9420 . Biasanya oh-my-zsh diinstal di ~/.oh-my-zsh

Mencoba solusi lain yang disebutkan, tetapi dalam lingkungan yang serupa (oh-my-cygwin/cygwin64/Powershell/Win8.1), solusinya [ https://github.com/robbyrussell/oh-my-zsh/issues/630#issuecomment -28125976] dari @Twilek di atas adalah yang berhasil untuk saya. Terima kasih!

Saya memiliki masalah yang sama pada Windows 8 dengan cygwin (instalasi baru hari ini) dan zsh 5.0.2. @twilek solusi Anda berhasil untuk saya. Terima kasih!

@smiller171 bersorak sobat. bekerja sempurna sekarang. membuatnya bekerja pada Win 8 saya dengan Cygwin (aneh, saya memiliki komputer yang hampir identik yang tidak pernah mengalami masalah ini!)

terima kasih @twilek windows 8.1 cygwin64 diperbaiki

terima kasih @twilek , itu juga memperbaikinya untuk saya:

cygwin: 1.7.32 (0.274/5/3)
zsh: 5.0.6 (i686-pc-cygwin)
oh-my-zsh: 96e4e5d

Hebat @twilek solusi Anda berfungsi di

@twilek ' solusi bekerja untuk Babun pada Windows 8 x64 juga! Terima kasih!

@twilek solusi bekerja pada Windows 8.1 x64, juga.

Solusi @twilek baru saja menyelamatkan saya tetapi mengapa ini perlu?

@twilek solusi bekerja untuk saya (Windows 8 x64, babun, oh-my-zsh, zsh 5.0.2). Terima kasih!

@twilek Terima kasih. Saya memiliki masalah yang sama.

$cp .zcompdump .zcompdump-Aspire-5.0.6

Untuk membuat lebih umum apa yang @ajorpheus taruh di atas (Anda dapat menyalin dan menempel ini dengan komentar, mereka tidak akan berjalan, tetapi hanya akan muncul di riwayat perintah Prompt Anda:

# This will perform chmod g-w for each file returned by compaudit
# to remove write access for group
compaudit | xargs chmod g-w,o-w
# This will perform chown to current user (Windows and Linux)
# for each file returned by compaudit
compaudit | xargs chown $USER
# Remove all dump files (which normally speed up initialization)
rm ~/.zcompdump*
# Regenerate completions file
compinit

Tidak disarankan untuk menjalankan ini sepanjang waktu, karena ini akan sedikit memperlambat startup shell Anda dan sepenuhnya meniadakan manfaat dari file dump.
Jika Anda tidak ingin mereka dihasilkan dan karena itu rusak, ganti saja di mana pun compinit dipanggil di skrip mulai dengan compinit -D untuk menghindari pembuatan file dump sama sekali.

Saya memiliki masalah yang sama dengan babun di windows 7, menggunakan tmux memberi saya kesalahan itu.
Saya memecahkan mengubah ini:
di .oh-my-zsh/oh-my-zsh.sh

# Save the location of the current completion dump file.
ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
# to:
ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump"

Saya tidak tahu implikasi dari mod ini, tetapi tampaknya berhasil sekarang

rm -f ~/.zcompdump; compinit melakukan trik di sini juga. Terima kasih!!

Dalam tradisi open-source yang dihormati waktu "Jika Anda ingin bug dibunuh, ambil kapaknya sendiri.", Saya telah mengajukan permintaan tarik bahwa:

  • Memperbaiki sebagian besar masalah ini di bawah Cygwin.
  • Secara signifikan meningkatkan pelaporan kesalahan startup (meskipun tidak cukup memperbaiki masalah ini) di bawah platform non-Cygwin. Ini berarti OS X dan Linux, terutama.

Dan Gurita melihatnya, dan itu bagus. :gurita:

Saya masih melihat masalah ini di MacOS 10.10.3, ada orang lain? Saya mencoba semua perbaikan yang tercantum di atas, tetapi setiap kali saya memulai shell baru saya mendapatkan:

compdef: perintah atau layanan tidak dikenal: git
compdef: perintah atau layanan tidak dikenal: git

zsh 5.0.7 (x86_64-apple-darwin14.0.0)

Saya mengkloning oh-my-zsh pagi ini dan saat ini memiliki revisi ini:

3ea33841863c4f5f22a27e64ae7950d901b674af

_Memperbarui_

Tidak yakin bagaimana mungkin, tetapi beralih ke zsh 5.0.8 (x86_64-apple-darwin14.3.0) dari Brew sepertinya memperbaikinya!

Diperbaiki sementara oleh solusi @tomek rm -f ~/.zcompdump; compinit ini untuk sementara memperbaiki kesalahan peluncuran, kesalahan git, dan tidak ada masalah pelengkapan otomatis untuk saya, TETAPI, mereka kembali saat berikutnya saya membuka Shell.

Saya menggunakan Mac, tidak pernah menggunakan zsh sebelumnya, baru saja menginstal oh-my-zsh dan mengalami masalah ini. Tidak ada perubahan pada pengaturan apa pun dari default.

ProductName:    Mac OS X
ProductVersion: 10.10.4
BuildVersion:   14E46
which zsh
/usr/local/bin/zsh
zsh --version
zsh 5.0.6 (x86_64-apple-darwin14.0.0)

MEMPERBARUI
Setelah menghapus sepenuhnya dan menyeluruh direktori zsh, oh-my-zsh, dan homebrew, chown -R $USER /Library/ dan Brew kepada saya, lalu menginstal ulang semuanya, SEKARANG pelengkapan otomatis saya berfungsi dan banyak kesalahan/konfigurasi hilang, TAPI , saya masih mendapatkan kesalahan compdef: unknown command or service: git , bahkan setelah mencoba solusi di atas, kesalahan kembali pada setiap jendela terminal baru.

Saya menemui masalah ini setelah memigrasikan data dari Air lama ke Pro baru melalui asisten migrasi.

Memperbaiki masalah setelah menjalankan perintah di bawah dari salah satu komentar di atas.

compaudit | sudo xargs chmod g-w
compaudit | sudo xargs chown root
rm ~/.zcompdump*
compinit

saya hanya berkomentar

plugins=(git)

di .zshrc dan perbaiki

@zxkane Ini bekerja untuk saya. tapi saya perlu login sebagai root untuk memperbaiki masalah ini.

@BigForNothing Terima kasih atas cuplikannya, ini berhasil untuk saya :+1:

Sebagai catatan - menambahkan gitfast memperbaiki masalah ini untuk saya

plugin=(git gitfast)

Terima kasih, @pfdai. Bekerja seperti pesona, berjalan dengan plugins=(git gitfast mvn zsh-syntax-highlighting) sekarang. :+1:

Terima kasih @pfdai ! Menambahkan gitfast melakukannya untuk saya juga! Tidak ada hal lain yang berhasil untuk saya!

@pfdai Terima kasih banyak!

saya mendapat

 compinit:496: no such file or directory: /usr/local/share/zsh/site-functions/_git
compinit:shift:498: shift count must be <= $#
compinit:496: no such file or directory: /usr/local/share/zsh/site-functions/_j
compinit:shift:498: shift count must be <= $# 

ketika saya melakukan compinit

Sama.

Saya menjalankan zsh -xv &> >(tee ~/omz-debug.log 2>/dev/null) dan mencari teks kesalahan yang saya terima

Untuk kesalahan ini:

complete:13: command not found: compdef

Saya memperbaikinya di file ~/.nvm/bash_completion pada baris 96, saya mengomentari baris ini
complete -o default -F __nvm nvm

Untuk kesalahan ini:

__rvm_cleanse_variables: function definition file not found
command not found: rvm_error

Saya harus mengomentari beberapa baris di sekitar .rvm/scripts/initialize

__rvm_cleanse_variables ||
if [[ -n "${ZSH_VERSION:-}" ]]
then rvm_error "ZSH Error, run \`rm -f ~/.zcompdump\` and try again."
fi

@nnadboralski-zz Terima kasih Bro!! Anda membuat hari saya.

Saya baru saja mendapatkan kesalahan ini pada pembaruan hari ini:

~/.oh-my-zsh/lib/directories.zsh:32: command not found: compdef

Jalankan upgrade_oh_my_zsh untuk perbaikan.

ya, itu memperbaikinya. Terima kasih.

Pada Rabu, 8 Mei 2019 di 02:14 Marc Cornellà [email protected]
menulis:

Jalankan upgrade_oh_my_zsh untuk perbaikan.


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/robbyrussell/oh-my-zsh/issues/630#issuecomment-490375556 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAS7JR2JZOXQOH2EK3PKQC3PUJ4UFANCNFSM4ABRMYGQ
.

upgrade_oh_my_zsh tidak memperbaikinya

Coba rm $ZSH_COMPDUMP , lalu exec zsh . Lihat FAQ wiki untuk detailnya.

menghapus compdump juga tidak berhasil, tetapi sepertinya itu adalah kesalahan sintaks dalam file .zshrc saya.

plugin saya terdaftar sebagai daftar yang dipisahkan koma:

plugins=(git, docker)

dan pesan kesalahan _exactly_ benar, dengan koma menjuntai:

[oh-my-zsh] plugin 'git,' not found

menghapus koma memperbaiki kesalahan. semoga bermanfaat bagi orang lain di luar sana. itu salah satu kesalahan ketik yang sulit untuk dilihat untuk memulai, dan lebih sulit untuk dikenali ketika Anda menghabiskan sebagian besar hari Anda bekerja dalam skrip atau bahasa di mana daftar spasi yang digambarkan akan menjadi kesalahan.

Jadi saya menjalankan semua perbaikan dan tidak ada yang berhasil untuk saya ... kesalahan saya sedikit berbeda. Itu bukan dari panggilan fungsi lengkap tetapi panggilan evaluasi ...
(eval):6: command not found: compdef

Jadi setelah mencoba yang lainnya, saya mulai mencari ke dalam file ~/.zshrc untuk semua perintah eval . Saya perhatikan bahwa oh-my-zsh telah meletakkan semua perintah tipe eval di bagian bawah file yang dibungkus dengan pernyataan if untuk memastikan perintah itu ada (yang saya lakukan/memang ada, tetapi tidak bisa terlalu berhati-hati).

Saya menemukan dua yang dipanggil sebelum oh-my-zsh diinisialisasi dan memutuskan untuk memindahkannya ke bagian bawah file. Setelah memindahkannya dan membungkusnya dalam pernyataan if untuk pemeriksaan di masa mendatang, konfigurasi saya, ini adalah dua yang saya pindahkan ...

if command -v thefuck 1>/dev/null 2>&1; then
    eval $(thefuck --alias)
fi

if command -v pipenv 1>/dev/null 2>&1; then
    eval "$(pipenv --completion)"
fi

Mungkin hanya salah satu dari ini yang menyebabkan masalah, tetapi saya memindahkan semua eval pernyataan terkait ke bagian bawah file ~/.zshrc .

Saya harap ini membantu seseorang dan menghemat waktu!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat