Saya menjalankan zsh 5.0.4 di OS X 10.8 dengan oh-my-zsh a38af27
dengan plugin git
. Ketika saya mengetik gco <TAB>
, saya mendapatkan output berikut:
% gco zsh:12: command not found: __git-checkout_main
extegco
file
MIT-LICENSE.txt custom/ log/ plugins/ themes/
README.textile lib/ oh-my-zsh.sh templates/ tools/
Saya telah menemukan pelakunya sebagai opsi complete_aliases
. Setelah saya mematikannya, semuanya berfungsi seperti yang diharapkan.
Apa yang memberi? Apakah ada opsi bentrokan? Saya sudah lama tidak mengganti .zshrc
saya, dan saya selalu mengaktifkan complete_aliases
.
Saya tidak terlalu membutuhkan opsi ini tetapi saya kira ada beberapa bug di sini.
:+1: Masalah yang sama persis... sangat membingungkan.
Menarik.
Untuk yang malas, inilah yang dikatakan panduan Zsh tentang complete_aliases
:
Mencegah alias pada baris perintah diganti secara internal sebelum penyelesaian dicoba. Efeknya adalah menjadikan alias sebagai perintah yang berbeda untuk tujuan penyelesaian.
Namun, sejak 57f55e69ed967e93c0fd44a6a7e470781eb38029 dan 2e9492969b0ea90932ad3f4298330b75ef8cf2ce, alias dari plugin git memiliki set penyelesaiannya sendiri, dan dialihkan ke subperintah git yang tepat, termasuk gco
. Jadi masalah ini _tidak boleh_ terjadi. Adakah yang tahu mengapa masih ada?
Akhirnya, saya tidak dapat mereproduksi masalah dengan Zsh 5.0.2 di Mac 10.9.2: complete_aliases
sekali tidak mengubah perilaku penyelesaian pada gco
, bahkan jika saya menghapus penyelesaian cache.
@slhck @mecampbellsoup dapatkah Anda mencoba dengan templat .zshrc
dan melihat apakah itu masih terjadi?
Juga @mecampbellsoup dapatkah Anda memposting konfigurasi sistem dan versi
@mcornella @simonweil (pembantu saya yang bahagia =D) dapatkah Anda mencoba mereproduksi masalah?
Saya sekarang menggunakan Zsh 5.0.5 dengan oh-my-zsh eafd5f3
. Jika saya menggunakan template .zshrc
tidak ada masalah. Tentu saja, karena tidak ada opsi complete_aliases
di sana.
Segera setelah saya memasukkan setopt complete_aliases
, menekan Tab
setelah gco
membuat saya mendapatkan kesalahan lama yang sama.
@ncanceill Tentu, ini dia:
⇒ zsh --version
zsh 5.0.5 (x86_64-apple-darwin13.0.0)⇒ zsh --version
zsh 5.0.5 (x86_64-apple-darwin13.0.0)
Konfigurasi lengkap .zshrc
dan zsh
dapat ditemukan di sini: https://github.com/mecampbellsoup/dotfiles/tree/master/zsh
versi oh-my-zsh adalah eafd5f3
juga.
Tidak tahu .. mungkin kesalahan cache compinit? Jika demikian, coba hapus file .zcompdump*
di direktori $HOME Anda
@mcornella Sayangnya, itu tidak membantu.
@slhck Saya pikir mungkin kita harus mulai memeriksa komit zsh
untuk melihat apakah kita dapat menemukan bug...?
@mecampbellsoup ya, itu bisa membantu! Saya merekomendasikan penggunaan git-bisect
.
Masalah yang tidak dapat direproduksi menunjukkan bahwa itu ada hubungannya dengan konfigurasi Anda, dan fakta bahwa itu masih terjadi dengan template .zshrc
menunjukkan bahwa itu tidak terkait dengan konfigurasi OMZ Anda.
Mari kita mulai dengan menentukan apa yang harus dilakukan oleh pernyataan compdef
. Membaca manual penyelesaian Zsh menunjukkan sedikit lebih banyak tentang cara kerjanya:
#compdef names... [ -[pP] patterns... [ -N names... ] ]
Setiap nama juga dapat berbentuk '_cmd=service_'. Saat menyelesaikan perintah _cmd_, fungsi biasanya berperilaku seolah-olah perintah (atau konteks khusus) _service_ sedang diselesaikan. Ini menyediakan cara untuk mengubah perilaku fungsi yang dapat melakukan banyak penyelesaian yang berbeda. Ini diimplementasikan dengan mengatur parameter$service
saat memanggil fungsi; fungsi dapat memilih untuk menafsirkan ini sesuai keinginannya, dan fungsi yang lebih sederhana mungkin akan mengabaikannya.
compdef [ -ane ] function names... [ -[pP] patterns... [ -N names... ] ]
Bentuk pertama mendefinisikan _function_ untuk memanggil penyelesaian dalam konteks yang diberikan seperti yang dijelaskan untuk tag#compdef
atas.
Atau, semua argumen mungkin memiliki bentuk '_cmd=service_'. Di sini _service_ seharusnya sudah didefinisikan oleh baris '_cmd1=service_' dalam file#compdef
, seperti dijelaskan di atas. Argumen untuk _cmd_ akan diselesaikan dengan cara yang sama seperti _service_.
Tapi kemudian saya melihat penyelesaian Zsh git (dengan jumlah baris 6661 oh-begitu-jahat), dan git-checkout
tidak tercantum dalam pernyataan #compdef
, dan $service
juga tidak diperiksa. Jadi saya tidak tahu mengapa compdef _git gco=git-checkout
berhasil — tetapi itu berhasil!
@pielgrzym dapatkah Anda memberi tahu kami tentang 2e9492969b0ea90932ad3f4298330b75ef8cf2ce?
Penggalian yang bagus @ncanceill!
$service
juga tidak diperiksa. Jadi saya tidak tahu mengapacompdef _git gco=git-checkout
berhasil — tetapi itu berhasil!
Memang diperiksa di dalam fungsi _git()
, CTRL+F menunjukkan bahwa ini adalah if-else yang sederhana:
if [[ $service == git ]]; then
[...]
else
_call_function ret _$service
fi
jadi ia kemudian memanggil _git-checkout
, yang juga didefinisikan, tetapi hanya jika sebelumnya tidak didefinisikan :
(( $+functions[_git-checkout] )) ||
_git-checkout () { [...] }
Mungkin keduanya memiliki fungsi _git-checkout
ditentukan di tempat lain yang memicu perilaku ini?
Juga, pesan kesalahan mengeluarkan __git-checkout_main
(_dengan dua garis bawah_), dan kemudian extegco\n
file
. Sepertinya pesan itu ditimpa, seolah-olah zle
ada hubungannya dengan itu..
BTW, sumber yang Anda tautkan berasal dari cabang master, berikut adalah 5.0.4 dan 5.0.5
Terima kasih @mcornella , saya menemukan cek untuk $service == git
tetapi dengan bodohnya mengabaikan klausa else
! Dan saya tidak menemukan keberanian untuk bermain dengan SF's git viewer (yang BTW tidak memiliki nomor baris!) untuk mencari titik tertentu dalam sejarah, malas saya!
Saya suka petunjuk Anda tentang _git-checkout
tidak didefinisikan karena ada di tempat lain. @slhck @mecampbellsoup dapatkah Anda menjalankan which _git-checkout
untuk memeriksa apakah Anda memiliki fungsi yang tepat?
Mengenai keluaran aneh, saya telah melihat zle
melakukan banyak hal aneh, jadi saya tidak terlalu terkejut. Tapi saya sama bingungnya dengan __git-checkout_main
seperti Anda.
Satu hal terakhir, menggunakan git checkout
alih-alih gco
harus menunjukkan perilaku yang sama
@ncanceill @mcornella Jadi, inilah beberapa keluaran untuk Anda, keduanya diambil setelah mencoba penyelesaian tab:
matthewcampbell@Matthews-MacBook-Air:~/Sites/code/stack-builders/seo_platform|69220108_adjust_keyword_editing_on_dealer⚡
⇒ gco ......zsh:12: command not found: __git-checkout_main
⇒ git checkout
67061970_notify_sidekiq_hangs origin/67061970_notify_sidekiq_hangs production
67394702_track_keywords_change origin/67394702_track_keywords_change production_2014-04-21
(PS Ini sama dengan output ketika saya baru saja alias gco=git checkout
aktif dan saya menggunakan gco
, yaitu setelah saya berkomentar setopt complete_aliases
di file .zshrc
)
Dan ketika saya bertanya tentang which _git-checkout
(dan which __git-checkout
juga):
⇒ which _git-checkout
_git-checkout not found
⇒ which __git-checkout
__git-checkout not found
Coba ini:
autoload -Uz _git-checkout && _git-checkout
which _git-checkout
Maaf, tetapi tidak menjadi jelas jika masalah muncul hanya dengan menggunakan git checkout <TAB>
alih-alih gco <TAB>
..
Juga, coba nonaktifkan OMZ seluruhnya: yaitu, menggunakan file .zshrc
kosong. Penyelesaian Git harus tetap ada dan masalahnya juga
Dan satu hal terakhir, apakah hal yang sama terjadi di repositori git lain?
@mcornella Lebih banyak keluaran untuk ya':
⇒ autoload -Uz _git-checkout && _git-checkout
zsh: _git-checkout: function definition file not found
⇒ which _git-checkout
_git-checkout () {
# undefined
builtin autoload -XUz
}
Tampaknya pada dasarnya semua fungsi penyelesaian Git saya rusak, omong-omong (saya harus <TAB>
dua kali untuk membuat kesalahan muncul):
⇒ ga ......zsh:12: command not found: __git-add_main
⇒ gco ......zsh:12: command not found: __git-checkout_main
⇒ gd ......zsh:12: command not found: __git-diff_main
⇒ gst ......zsh:12: command not found: __git-status_main
Saya cukup rugi. Beri tahu saya apa lagi yang bisa saya lakukan untuk membantu.
@mcornella Hal super aneh lainnya yang terjadi di pengaturan saya adalah hasil dari fungsi where
:
⇒ where ruby
ruby: aliased to bundled_ruby
/Users/matthewcampbell/.rbenv/shims/ruby
/Users/matthewcampbell/.rbenv/shims/ruby
/usr/bin/ruby
⇒ where coqc
/usr/local/bin/coqc
/usr/local/bin/coqc
/usr/local/bin/coqc
/usr/local/bin/coqc
Mengapa ZSH mengembalikan saya hasil yang sama 4 kali?!
Oke, bersabarlah, untuk terakhir kalinya:
autoload -Uz _git && _git
which _git-checkout
dan
echo '$fpath = ('$fpath')'
echo '$path = ('$path')'
Juga, coba apa yang saya sebutkan tentang menggunakan file .zshrc
kosong
⇒ autoload -Uz _git && _git
zsh:12: command not found: ___main
_default:compcall:12: can only be called from completion function
⇒ which _git-checkout
_git-checkout not found
⇒ echo '$fpath = ('$fpath')'
$fpath = (/Users/matthewcampbell/.oh-my-zsh/plugins/gem /Users/matthewcampbell/.oh-my-zsh/plugins/brew /Users/matthewcampbell/.oh-my-zsh/plugins/bundler /Users/matthewcampbell/.oh-my-zsh/plugins/git /Users/matthewcampbell/.oh-my-zsh/functions /Users/matthewcampbell/.oh-my-zsh/completions /Users/matthewcampbell/.dotfiles/zsh /Users/matthewcampbell/.dotfiles/xcode /Users/matthewcampbell/.dotfiles/vim /Users/matthewcampbell/.dotfiles/tmux /Users/matthewcampbell/.dotfiles/system /Users/matthewcampbell/.dotfiles/sublime2 /Users/matthewcampbell/.dotfiles/script /Users/matthewcampbell/.dotfiles/ruby /Users/matthewcampbell/.dotfiles/python /Users/matthewcampbell/.dotfiles/osx /Users/matthewcampbell/.dotfiles/macvim /Users/matthewcampbell/.dotfiles/homebrew /Users/matthewcampbell/.dotfiles/git /Users/matthewcampbell/.dotfiles/functions /Users/matthewcampbell/.dotfiles/ctags /Users/matthewcampbell/.dotfiles/cloudapp /Users/matthewcampbell/.dotfiles/bin /Users/matthewcampbell/.dotfiles/functions /usr/local/share/zsh/site-functions /usr/local/Cellar/zsh/5.0.5/share/zsh/functions)
⇒ echo '$path = ('$path')'
$path = (/Users/matthewcampbell/.rbenv/shims /usr/local/opt/coreutils/libexec/gnubin /usr/local/bin /Users/matthewcampbell/.cabal/bin /Applications/Postgres93.app/Contents/MacOS/bin /usr/local/bin /usr/local/heroku/bin ./bin /Users/matthewcampbell/.rbenv/shims /usr/local/bin /usr/local/sbin /Users/matthewcampbell/.sfs /Users/matthewcampbell/.dotfiles/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/X11/bin /usr/local/go/bin /usr/local/MacGPG2/bin /Users/matthewcampbell/.rbenv/shims /usr/local/opt/coreutils/libexec/gnubin /Users/matthewcampbell/.cabal/bin /Applications/Postgres93.app/Contents/MacOS/bin /usr/local/heroku/bin ./bin /usr/local/sbin /Users/matthewcampbell/.sfs /Users/matthewcampbell/.dotfiles/bin /usr/local/Cellar/go/1.2.1/bin /usr/local/Cellar/go/1.2.1/bin)
Juga, coba nonaktifkan OMZ seluruhnya: yaitu, menggunakan file
.zshrc
kosong. Penyelesaian Git harus tetap ada dan masalahnya juga
Matthews-MacBook-Air% autoload -Uz _git-checkout && _git-checkout
zsh: _git-checkout: function definition file not found
Matthews-MacBook-Air% gd
zsh: command not found: gd
Matthews-MacBook-Air% gst
zsh: command not found: gst
Matthews-MacBook-Air% gco
zsh: command not found: gco
Sepertinya penyelesaian tidak bertahan ...
autoload -Uz _git && _git
zsh:12 : perintah tidak ditemukan: ___main
Ini mengkonfirmasi masalah yang terjadi dengan setiap penyelesaian git, saya kira ada yang salah dengan _git()
. Silakan posting hasil which _git
Sepertinya penyelesaian tidak bertahan ...
Saat Anda menggunakan zsh tanpa oh-my-zsh, jangan gunakan alias tetapi perintah git lengkap, karena alias tidak didefinisikan tanpa oh-my-zsh. Anda dapat menavigasi ke repositori git dan memasukkan perintah git apa pun (misalnya git checkout <TAB>
), dengan dan tanpa setopt completealiases
; penyelesaian git diaktifkan secara default.
Juga, tampaknya Anda memiliki entri duplikat di $path; untuk menegakkan nilai unik tambahkan perintah typeset -U path
di akhir .zshrc
(setelah semua entri jalur ditambahkan)
Terima kasih @mcornella , sangat membantu saya.
⇒ which _git
_git () {
local _ret=1
local cur cword prev
cur=${words[CURRENT]}
prev=${words[CURRENT-1]}
let cword=CURRENT-1
if (( $+functions[__${service}_zsh_main] ))
then
__${service}_zsh_main
else
emulate ksh -c __${service}_main
fi
let _ret && _default && _ret=0
return _ret
}
Saat Anda menggunakan zsh tanpa oh-my-zsh, jangan gunakan alias tetapi perintah git lengkap, karena alias tidak didefinisikan tanpa oh-my-zsh.
Ketika saya menggunakan perintah git
DENGAN ACTIVE OMZ, perilakunya sedikit berbeda dari apa yang saya miliki dengan alias... lihat:
⇒ git checkout <TAB>
64879538_fix_li_elements master origin/master
64908958_center_products_text_in_div next_ror_post origin/next_ror_post
64916916_fix_contact_emails origin/64879538_fix_li_elements origin/oss_contrib_blog_post
64919128_override_fonts origin/64908958_center_products_text_in_div origin/production
65271680_fix_map_resizing origin/64916916_fix_contact_emails origin/sprites
65753620_translate_navigation_bar origin/64919128_override_fonts origin/title-update-final
Di masa lalu, saat menggunakan gco <TAB>
hanya cabang lokal yang akan muncul sebagai opsi. Pada output di atas, semua cabang pada remote origin
muncul.
Inilah output ketika saya menonaktifkan OMZ dan menjalankan perintah git
:
Matthews-MacBook-Air% git checkout README.md
Procfile Setup.hs circle.yml dist/ node_modules/ stackbuilders.com.cabal
README.md assets/ client_session_key.aes news/ src/ tests/
Tampaknya, yah, rusak, yang masuk akal karena saya telah menonaktifkan plugin git
seperti yang diaktifkan di .zshrc
.
Ok, sekarang kita tahu dari mana _git-checkout_main
berasal. Fungsi _git()
kacau, tetapi saya tidak tahu mengapa. Saya berasumsi Anda memiliki setopt completealiases
di .zshrc
. Silakan dan nonaktifkan itu, lalu jalankan which _git
lagi.
Juga, posting file /usr/local/Cellar/zsh/5.0.5/share/zsh/functions/Completion/Unix/_git
di Gist
Ini dengan setopt complete_aliases
dinonaktifkan:
⇒ which _git
_git () {
# undefined
builtin autoload -XUz
}
Sepertinya saya tidak memiliki filepath itu - saya memiliki hingga /functions
tetapi tidak /Completion
dan seterusnya... (banyak yang dihilangkan dalam hal berikut):
matthewcampbell@Matthews-MacBook-Air:~|
⇒ vim /usr/local/Cellar/zsh/5.0.5/share/zsh/functions/
VCS_INFO_adjust _dmidecode _matlab _snoop _zpty
VCS_INFO_bydir_detect _domains _md5sum _socket _zsh-mime-handler
VCS_INFO_check_com _dpatch-edit-patch _mdadm _sockstat _zstyle
VCS_INFO_detect_bzr _dpkg _members _softwareupdate _ztodo
VCS_INFO_detect_cdv _dpkg-buildpackage _mencal _sort _zypper
Oke, jalur file harus /usr/local/Cellar/zsh/5.0.5/functions/Completion/Unix/_git
Mengenai _git()
, Anda perlu mencoba melengkapi beberapa perintah git secara otomatis sebelum menjalankan which _git
Masih tidak dapat menemukan filepath itu saudara ... inilah Intisari dengan output tree
berjalan dari dalam direktori ZSH
: https://Gist.github.com/mecampbellsoup/1065d4228b143140ac69
Inilah which _git
setelah menjalankan fungsi pelengkapan otomatis (khususnya saya mencoba ga
, gd
, dan gc
):
⇒ which _git
_git () {
local _ret=1
local cur cword prev
cur=${words[CURRENT]}
prev=${words[CURRENT-1]}
let cword=CURRENT-1
if (( $+functions[__${service}_zsh_main] ))
then
__${service}_zsh_main
else
emulate ksh -c __${service}_main
fi
let _ret && _default && _ret=0
return _ret
}
Oke, saya mengerti sekarang bagaimana Homebrew menginstal zsh
, terima kasih untuk itu tree
Intisari! Oleh karena itu, file penyelesaian _git
ada di /usr/local/Cellar/zsh/5.0.5/functions/_git
. Silakan posting itu.
Saya mulai berpikir ini adalah masalah dengan instalasi zsh homebrew Anda. Mungkin harus uninstall dan install lagi.. Atau tanya ke @Homebrew guys?
https://Gist.github.com/80a00d7af3766c1ad6dc
@mcornella Apakah menurut Anda itu ada hubungannya dengan dotfiles yang saya instal belum lama ini? Mereka adalah @holman ... https://github.com/mecampbellsoup/dotfiles/blob/master/zsh/config.zsh
Nah, instalasi zsh Anda sudah benar. Tampaknya meskipun Anda memiliki beberapa tempat lain yang mendefinisikan ulang penyelesaian git Anda, karena which _git
dan fungsi _git()
didefinisikan dalam file _git
disediakan dalam Gist sangat berbeda.
Apakah menurut Anda itu ada hubungannya dengan dotfile yang saya instal belum lama ini?
Itu mungkin ya. Dalam file ini sumber file penyelesaian, periksa yang itu untuk saya, tolong dan terima kasih : cat $(brew --prefix)/share/zsh/site-functions/_git
@slhck , mungkin itu masalah yang sama, apakah Anda memiliki dotfiles @holman juga?
@mcornella Sebagai inti sekali lagi: https://Gist.github.com/mecampbellsoup/fb74f902ccfe9cc5b6c5
Ya, file itu adalah pelakunya. Definisi fungsi _git ()
ada di bagian bawah file, Anda akan melihat bahwa itu cocok dengan output which _git
Anda dapatkan.
Saya tidak tahu bagaimana Anda harus melanjutkan sekarang. Anda dapat mengganti nama file yang baru saja Anda buat sehingga dotfiles
tidak akan menemukannya, atau menghapus dotfiles
seluruhnya, atau cukup hapus dotfiles/git/completion.zsh
dari fork Anda (tetapi kemudian Anda akan mengalami konflik gabungan dari memperbarui dotfiles).
@mcornella Maaf, bagaimana Anda menjelaskan perilaku ini dengan tepat? Saya sedikit bingung :/
⇒ which _git
_git () {
# undefined
builtin autoload -XUz
}
matthewcampbell@Matthews-MacBook-Air:~/.dotfiles|master⚡
⇒ ga
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?
matthewcampbell@Matthews-MacBook-Air:~/.dotfiles|master⚡
⇒ which _git
_git () {
local _ret=1
local cur cword prev
cur=${words[CURRENT]}
prev=${words[CURRENT-1]}
let cword=CURRENT-1
if (( $+functions[__${service}_zsh_main] ))
then
__${service}_zsh_main
else
emulate ksh -c __${service}_main
fi
let _ret && _default && _ret=0
return _ret
}
Untuk _this behavior_ maksud Anda output yang berbeda dari keduanya which _git
? Jika demikian, itu karena penyelesaiannya adalah _autoloaded_, seperti yang Anda lihat di which _git
. Ini berarti definisi hanya dimuat saat pertama kali dibutuhkan, jadi pertama kali Anda meminta penyelesaian perintah git, saat itulah fungsi _git
memuat definisi.
Dan perilaku yang benar kemungkinan akan ditimpa di beberapa titik, mungkin oleh sesuatu di config.zsh
?
Ya, file yang memuat penyelesaian yang lebih lama adalah file ini di dotfiles Anda . Jika Anda menghapusnya, Anda akan mendapatkan penyelesaian yang tepat kembali.
Ini terlihat sangat mirip dengan yang Anda lakukan brew install hub
. Lihatlah komentar ini dan masalah ini: #1727.
Mengikuti saran pada yang terakhir akan memperbaikinya.
@slhck Anda akan menemukan perbaikan Anda dalam komentar ini: https://github.com/robbyrussell/oh-my-zsh/issues/2800#issuecomment -43694975
@mcornella Maaf untuk jawaban yang terlambat. Saya tidak memiliki akses ke mesin yang mengekspos masalah.
Berlari
brew uninstall --force git && brew install git --without-completions
memecahkan masalah memang.
Terima kasih banyak atas penyelidikan Anda.
Masalahnya di sini adalah penyelesaian Git resmi tidak disiapkan untuk 'complete_aliases', saya telah mendorong perbaikan:
https://github.com/felipec/git/commit/aaafa76
Dengan cara ini Anda dapat secara manual menentukan penyelesaian dengan:
compdef _git gco=git_checkout
Namun, jika Anda ingin menggunakan format zsh: gco=git-checkout
dan agar berfungsi dalam versi Git yang saat ini didistribusikan, Anda dapat melakukan ini:
alias __git-checkout_main=_git_checkout
temukan .zshrc dan hapus komentar
alias zshconfig="st ~/.zshrc"
alias gco="git checkout"
Adakah yang bisa membantu saya men-debug mengapa saya mendapatkan masalah ini? Itu terjadi dengan dan tanpa set complete_aliases
. Juga, menghapus file .zcompdump*
tidak memperbaikinya. Plugin saya baru saja disetel ke plugins=(git gitfast)
, namun saya mendapatkan masalah ini dengan penyelesaian fungsi (yang membuat frustrasi karena saya idealnya menggunakan fungsi gco
saya sendiri yang disesuaikan alih-alih gco
plugin git
ggl _git:12: command not found: __git-checkout_main
gdv _git:12: command not found: __git-diff_main
Saya menggunakan Powerlevel10k pada oh-my-zsh 173d4ca68f1ff4b04e9f3fd783244c309d848092, dengan zsh 5.8 (x86_64-Apple-darwin19.3.0) dan git versi 2.26.1. Sayangnya brew uninstall --force git && brew install git --without-completions
tidak lagi menjadi opsi dengan git.
Inilah definisi saya tentang _git
.
❯ which _git
_git () {
local _ret=1
local cur cword prev
cur=${words[CURRENT]}
prev=${words[CURRENT-1]}
let cword=CURRENT-1
if (( $+functions[__${service}_zsh_main] ))
then
__${service}_zsh_main
else
emulate ksh -c __${service}_main
fi
let _ret && _default && _ret=0
return _ret
}
@jessrosenfield Itu karena Anda kehilangan tambalan. Saya tidak yakin apakah Anda menggunakan ohmyzsh terbaru, tetapi ada beberapa ketidakcocokan dan tambalan saya dikembalikan:
@felipec Saya memperbarui tetapi semuanya masih tidak berfungsi (masalah saya saat ini # 9018 sedikit berbeda)
Komentar yang paling membantu
Masalahnya di sini adalah penyelesaian Git resmi tidak disiapkan untuk 'complete_aliases', saya telah mendorong perbaikan:
https://github.com/felipec/git/commit/aaafa76
Dengan cara ini Anda dapat secara manual menentukan penyelesaian dengan:
Namun, jika Anda ingin menggunakan format zsh:
gco=git-checkout
dan agar berfungsi dalam versi Git yang saat ini didistribusikan, Anda dapat melakukan ini: