Bash otomatik tamamlama: önce dosyaları listele, sonra aralarında dolaş


27

Bash'ı ilk sekmede otomatik tamamlamada tüm olası dosyaları ve sonrakiler arasında seçimler arasında döngüleri listeleyecek şekilde yapılandırmak mümkün mü?

Her iki seçeneğin de ayrı ayrı yapılması kolaydır ve bunları farklı anahtarlara bağlayabilirim, ancak yukarıda belirtilenler mükemmel olurdu, ancak bunun hakkında net bir şey bulamıyorum.


3
ZSH'yi kullanmaya başladığımdan bu yana bir süre geçti, ancak otomatik tamamlama işlevinin bu şekilde çalıştığına inanıyorum.
jordanm

1
@jordanm Başka hiçbir şey işe yaramazsa, bir seçenek gibi görünüyor, ancak bu da .bashrc, vb. ile ZSH eşdeğerlerine kadar her şeyden kaçınmayı gerektirir.
Voo

Yanıtlar:


31

Bu ne istediğine yakın görünüyor:

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

1
Neredeyse mükemmel, aynı zamanda ilk sekmede otomatik olarak tamamladığı küçük kusur dışında, sadece tam adı bulmaya çalışırken biraz can sıkıcı olabilir (yani, istersem biraz daha fazla karakter silmem gerekebilir) o zaman değiştir), ama bununla yaşamaya oldukça istekliyim.
Voo

1
Bu nasıl kolayca yapılabilir?
dingalapadum

1
bind "TAB:complete"; bind "set show-all-if-ambiguous off"
Jim Paris,

13
@Voo, üçüncü satırın bind "set menu-complete-display-prefix on"adayları otomatik olarak tamamlamadan ilk sekmedeki listeler.
Naitree

2
@Naitree, önerinizi yeterince oylayamıyor. Çalışır ve IS olur, varsayılan bash davranışından çok daha iyidir. Teşekkür ederim.
JBeurer,

1

Kullandığım şey bu. Söyleyebileceğim kadarıyla tam olarak ne istersen onu yapıyor.

# make tab cycle through commands after listing
bind '"\t":menu-complete'
bind "set show-all-if-ambiguous on"
bind "set completion-ignore-case on"
bind "set menu-complete-display-prefix on"

Bu Mac (10.13 ve 10.14) ve Ubuntu (16.04 ve 18.04) üzerinde çalışır.


0

Düşündün mü Superuser'de referans alındı ​​...

[[ $- = *i* ]] && bind TAB:menu-complete

1
menu-completesoruyu soran şeyin sadece yarısı. Sorunun dediği gibi, "[b] seçeneklerinin ayrı olarak yapılması kolaydır" .
jw013

Evet, davranışı iki seçenekten birine nasıl değiştireceğimi biliyorum, ancak bu kolay olanı. Asıl sorun, ikisinin nasıl bir araya getirileceğidir.
Voo
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.