Penyelesaian perintah git pada tab ZSH sangat lambat. Bagaimana saya bisa mematikannya?

18

Jika saya mengetik:

rm <TAB>

Saya akan melihat kemungkinan penyelesaian hampir secara instan.

Namun, jika saya mengetik:

git rm <TAB>

Ini akan menggantung selama beberapa detik jika dalam git repo, atau gagal untuk menunjukkan penyelesaian jika saya di luar git repo.

Bagaimana saya bisa memperbaiki perilaku ini?

Tidak ada di .zshrc saya yang sepertinya ada hubungannya dengan git: - /

Casey Rodarmor
sumber
+1 Ini membuat saya sangat kesal. Saya telah menyadap otak saya agar tidak terkena <TAB>ketika menggunakan git.
Christopher

Jawaban:

26

Saya akhirnya repot-repot untuk google ini dan muncul dengan jawaban SO ini, yang bekerja dengan baik untuk saya. Tambahkan ini ke .zshrc:

__git_files () { 
    _wanted files expl 'local files' _files     
}

Ada juga utas milis yang mendalam di sini tentang hal itu menjelaskan apa yang zshharus dilakukan untuk waktu yang lama.

Christopher
sumber
1
Ini tidak berhasil untuk saya. Saya memuat plugin oh-my-zsh berikut: plugins = (git gitfast last-working-dir zeus). Saya memuat fungsi di atas setelah plugin.
justingordon
1
Saya memiliki masalah yang sama. Mengomentari untuk mengonfirmasi keberhasilan: pada OSX 10.8.5, zsh 4.3.11, git 1.8.2, entri .zshrc membuat semua perbedaan. Tanpa itu, cpu teratur disematkan pada 100%. Dengannya, penyelesaian tab tampaknya hampir sama untuk perintah git seperti yang lainnya. Terima kasih! :)
setiap
Pastikan Anda meletakkan perintah ini di depan zsh plugins Anda, jika tidak, Anda mungkin berakhir dengan pelengkapan otomatis cepat, tetapi kesalahan begitu Anda mencoba menjalankan perintah git.
Simon
1

Berikut opsi lain: penyelesaian resmi Git zsh: git-completion.zsh . Yang perlu Anda lakukan adalah mengunduhnya ~/.zsh/_git, dan pastikan itu sesuai keinginan Anda:

fpath=(~/.zsh $fpath)

Saya merasa menarik bahwa utas ini disebutkan dalam respons lain; Saya memulai utas itu, dan saya menulis penyelesaian resmi Git zsh sebagai hasilnya.

FelipeC
sumber