Zsh tamamlama işlemini bash tamamlama gibi daha fazla nasıl yapabilirim?


18

Ben bash zsh (son zamanlarda "oh my zsh" ile kullanıyorum) dönüştürmek, ama bir şey beni rahatsız ediyor:

Sekme tuşuna bastığımda, ilk otomatik tamamlama otomatik olarak doldurulur ve sekmeye art arda basarak tamamlamalar arasında geçiş yapmanız gerekir.

Bu, tamamlamaların bir listesini gösteren bash'tan farklıdır. Tüm tamamlamaların aynı öneki varsa, bu önek doldurulur. Yazmaya devam ederek istediğinizi seçebilirsiniz.

Sekmeyi tekrar tekrar vurarak bir tamamlamayı seçmekten daha hızlı olduğu için ikincisini tercih edilir buluyorum.

Bu bağlamda zsh tamamlamayı bash gibi davranmanın bir yolu var mı?

Yanıtlar:


19
setopt noautomenu
setopt nomenucomplete

Her ikisine de ihtiyacınız var. Sekmeye yeteri kadar vurursanız, tamamlanmaların listesini alırsınız, ancak şimdiye kadar yazdıklarınıza hiçbir karakter eklemeyecektir.


5

Bu varsayılan davranış olduğunu sanmıyorum, ancak kullanarak kapatabilirsiniz:

setopt +o menucomplete

Farklı şekillerde bu davranışı etkileyen diğer ayarlar şunlardır: autolist, automenu, bashautolist, listambiguous. Ayrıntılar için "Tamamlanma" bölümüne man zshoptionsbakın. Bu komutu ~/.zshrcdosyanıza ekleyebilirsiniz .

Yaparak diğer pek çok şeyi etkileşimli olarak yapılandırabilirsiniz:

autoload -U compinstall
compinstall

istemleri ve menüleri takip etmek.

Bash, bu davranış bağlanma ile kontrol edilir Tabiçin completeya menu-completein ~/.inputrc:

"\C-i": complete   # do list completion

veya bir kabuk isteminden veya ~/.bashrc:

bind '"\C-i": menu-complete' # do menu completion

1
meta comment: "sekme" karakterini nasıl görüyorsunuz?
İyi Kişi

2
@İyi Kişi:<kbd>Tab</kbd>
sonraki duyuruya kadar duraklatıldı.
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.