Bash'ı daha TAB dostu yapmanın bir yolu var mı?


31

Hem Mac'imde hem de cygwin kabuğumda bash kullanıyorum. Genel olarak, bundan oldukça memnunum.

Bununla birlikte, tek bir şikayetim, TAB tamamlamasının Windows Komut Satırı SEKME tamamlama kadar iyi olmadığı yönünde.

Örneğin, aynı öneki olan iki dosya varsa, SEKME tamamlamayı denediğimde bash sadece bip sesi çıkarıyor. Eğer TAB'ı çivilemeye devam edersem, sonunda bana potansiyel dosyaların bir listesini gösterecek.

Kesinlikle Windows'un doğrudan komut satırındaki potansiyel dosyalar arasında nasıl dolaşacağını tercih ediyorum.

Bu konuda Windows Komut Satırı ile benzer şekilde çalışacak bash almanın bir yolu var mı?

Olmazsa (kabukları değiştirmek istemiyorum), bash'da TAB'ın tamamlanmasıyla ilgili bir şey eksik mi? Kullanmanın daha etkili bir yolu var mı?

Yanıtlar:


42

'Olası tamamlamalar arasında döngü' davranışını elde etmek için, aşağıdakileri .bashrc dosyanızdaki uygun bir yere kopyalayın:

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

Ayrıca, bash tamamlama , sadece yol adı tamamlamanın yanı sıra birçok ek tamamlama türü sağlar. Örneğin, menü tamamlama komut adlarını, seçenek adlarını vb. Tamamlamak için Git'in bash tamamlama modülüyle iyi çalışır.


OSx terminali için bunu yapma prosedürü nedir?
Alex

2
@Alex: Dosyayı .bashrcgiriş dizininizde belirtilen satırı içerecek şekilde düzenlersiniz . Senin Eğer .bash_profile(aynı dizinde) dosyası da gibi bir satır yok source ~/.bashrc, o zaman da böyle bir çizgiyi içerecek şekilde düzenlemeniz gerekir. Ayar yeni Terminal pencerelerinde aktif olacaktır . Tercih edilen bir editörünüz yoksa, dosyayı TextEdit'te komutla açabilirsiniz open -e ~/.bashrc; eğer dosya henüz mevcut değilse, önce (örneğin) komut ile yaratmanız gerekecektir touch ~/.bashrc.
Chris Johnsen,

1
@Alex, Bash 10.7 (Lion) dahil olmak üzere 10.3 ve sonraki sürümlerde varsayılan kabuktur. İlk echo $SHELL. Bu, kullanıcı hesabınız için seçilen kabuk olacaktır. İstediğiniz bu değilse, kabuğunuzu chpass -s /bin/bash(veya istediğiniz kabuğu) değiştirmeniz gerekir . $ SHELL iyi ise, varsayılan kullanıcı kabuğunun özel bir komutla geçersiz kılındığını görmek için Terminal> Tercihler> Başlatma> Şununla açık olan kabuklar: ve Terminal> Tercihler> Ayarlar> Profiller> Kabuk> Başlangıç ​​seçeneklerini işaretleyin.
Chris Page,

5
Shift + Tab ile bir seçeneğe geri dönmek için neyi bağlayacağım hakkında bir fikri olan var mı?
ppp

3
Sizde @ ppp .bashrc:bind '"\e[Z":menu-complete-backward'
kasa
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.