Zsh gibi Bash otomatik tamamlama


28

Bash kullanıyorum, fakat bash'ın göründüğü gibi zsh tarzı otomatik tamamlama özelliğine sahip olmak istiyorum (sekmeye ve olasılıklar arasında sekmeye varabilirsiniz), bash'ın göründüğü gibi, olasılıklar listesini gösterir ancak yazana kadar hiçbir şey seçemezsiniz biraz daha kesinleştirmek için. Bash'ta zsh tipi davranışı nasıl alabilirim?

Bir çözüm arayışı, diğer sorulara birçok cevap getirdi, bu yüzden burada basit bir cevap alabileceğimi umuyorum (yani, ne yazacağımı .bashrc).

(Ve bariz soruyu cevaplamak için burada bash kullanmam gerekiyor çünkü bir takıma yeni katıldım ve çevreyi daha kolay çalışmasını sağlamak için bash kurmak için bazı şeyler yaptılar. Muhtemelen sonunda aynı şekilde çalıştığımdan emin olabilirim. zsh 'de olduğu gibi, fakat şimdi bash kullanırsam ve etkileşimli kullanım sırasında zsh gibi davranırsam daha kolay olur.)

Yanıtlar:


22

kullanırım

bind 'TAB:menu-complete'

başarmak için


11
Bunu .bashrc cihazıma eklediğimde, sekme terminalde listelemek yerine olası seçenekler arasında dolaşıyor. Her iki davranışı elde etmek mümkün mü?
Antonios Hadjigeorgalis

İçin Shitf-Tabtam geriye doğru kullanımı bind '"\e[Z":menu-complete-backward'.
Ainar-G

24

İlk bitirmeyi ve bir listeyi almak için aşağıdakileri bashrc'ye ekleyebilirsiniz

bind 'set show-all-if-ambiguous on'
bind 'TAB:menu-complete'

show-all-if-ambiguous: Bu, tamamlama işlevlerinin varsayılan davranışını değiştirir. 'Açık' olarak ayarlanmışsa, birden fazla olası tamamlama sözleri, zili çalmak yerine derhal listelenmelerine neden olur. Varsayılan değer kapalı'.

Daha fazla bilgi için Bash Kılavuzuna bakınız .

Düzenle:

Bu, bash'in tam olarak zsh tho gibi çalışmasını sağlamıyor . Zsh, bir sonraki belirsiz maça kadar tamamlanacak. Bash sadece tüm maçlar arasında geçiş yapacak.

Örneğin

$ ls ~/.ba<tab> .bashrc .bash_history .bash_profile

  • zsh: ~ / .bash ye kadar tamamlar ve kolayca _ eklemenizi ve <tab>tekrar basmanızı sağlayan bir eşleşme listesi sunar .
  • bash: sadece ~ / .ba * eşleşmeleri arasında geçiş yapacak.

8
Ok tuşlarını ve zsh'nin otomatik tamamlamasının görsel gösterimini kullanmayı sevdim. Bu davranışları bash ile yakalamanın bir yolu var mı? Daha iyi sunucu uyumluluğu için geri dönüyorum
CESCO

2

Takip etmek ingkebil olanlar için, 'ın cevabı şu koymak bindve setiçine inputrc:

$ tail -n 4 /etc/inputrc
# zsh like completion:
# /superuser/288714/bash-autocomplete-like-zsh
set show-all-if-ambiguous on
TAB:menu-complete

.bashrcTemiz olmamı seviyorum .

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.