Tweaking zsh git otomatik tamamlama


10

Ben sadece bash Ubuntu Hardy üzerinde zsh 4.3.4 kullanarak geçti. Git ile geliştiriyorum ve kendimi sürekli git git tamamlamaları ile savaşırken buluyorum: dosya adı tamamlama, eklediğiniz veya kaldırdığınız şeyleri (git-ls dosyalarını kullanarak) algılayarak akıllı olmaya çalışır, ancak bazen işler yanlış olur --- örneğin, bir alt dizindeyseniz. Ayrıca özel git takma adlarım hakkında da bilgi sahibi değil (örneğin, taahhüt için takma ad olarak git ci).

zsh superusers, bu durumu nasıl iyileştirmeliyim?

İşte düşüncelerimden bazıları, zsh için yeni olduğum için bunları nasıl uygulayacağımı bilmiyorum, bu yüzden belki kendinize yardımcı olabilir veya sunabilirsiniz:

  • Git dosya adı tamamlanmasını devre dışı bırakın, sadece branch / tag / komut-adı / komut seçeneği tamamlamasını bırakın.
  • "Akıllı" dosya adı tamamlamasını, normal zsh dosya adı tamamlaması ile değiştirin.
  • Bu hataları düzeltirse daha yeni bir _git tamamlama dosyası alın ve sistemdeki dosyayı geçersiz kılın.

Teşekkürler!



Evet, anlayabildiğim kadarıyla, sadece bir git istemi ekler ve altta yatan tamamlamaları değiştirmez.
Emil Sit

Birisi bize tüm git komutları için tüm "akıllı" tamamlamayı nasıl devre dışı bırakacağımızı söyleyebilir mi? Çok fazla IO yapıyorlar. Kabuğun anında yanıt vermesi gerekir. Git komutları için eski basit dosya adı tamamlama işlemine geri dönmek istiyorum. Bunun için bir web araması her yaptığımda sadece genel zsh adam sayfa bilgisi bir labirent olsun.
Peter Lyons

2
Kabuk IO yapıyor engellemek için sinir bozucu git tamamlama devre dışı bırakmak isteyen herkes için FYI, Ubuntu 10.04, ben sadece bunu yaptım: sudo mv /usr/share/zsh/functions/Completion/Unix/_git /usr/share/zsh/functions/Completion/Unix/OFF_git
Peter Lyons

Yanıtlar:


5

En son Zsh sürümüne yükseltmeyi deneyin. 4.3.4'ten 4.3.10'a yükselttim ve en azından Git takma adlarının tamamlanmamasıyla ilgili sorunu düzeltir.

Yüklememi kesmek yerine bunu yerelime ekledim .zshrc:

customzsh=/usr/local/src/zsh-4.3.10/bin/zsh-4.3.10
if [ "$SHELL" != "$customzsh" ]; then
  export SHELL=$customzsh
  exec $customzsh
fi

5

Büyük projeler için, daha yeni git tamamlama komut dosyaları bile çok yavaştır. Bunları devre dışı bırakmak ve normal dosya tamamlamayı kullanmak için, .zshrc'nize aşağıdaki komutu yerleştirin:

compdef -d git
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.