SORU
6 NİSAN 2011, ÇARŞAMBA


Nasıl sekme tamamlama çalışma bash mu?

Son zamanlarda kabuk çok zaman geçiriyorum ve sekme otomatik tamamlama nasıl çalıştığını merak ediyorum. Arkasındaki mekanizma nedir? Nasıl bash her dizinin içeriğini biliyor mu?

CEVAP
7 NİSAN 2011, PERŞEMBE


Bu otomatik tamamlama için iki bölümü vardır:

  • Zaten fixje tarafından belirtildiği gibi atayarak kütüphane, komut satırı düzenleme yönetir ve geri sekme, tamamlanmasını sağlamak için basıldığında bash için çağırır. Bash sonra (bkz: Bir sonraki nokta) Olası tamamlamaları bir listesini verir, ve karakterler tarafından açıkça belirlenmiştir kadar karakter olarak atayarak ekler zaten yazmış. (Atayarak kütüphane oldukça fazla bilgi için Bash Kullanma Kılavuzu Bölüm Command line editing bakın yapılandırabilirsiniz.)

  • Bina complete tamamlama mekanizması tanımlamak için tek tek komutları için kendisi Bash. Eğer geçerli bir komut için bir şey tanımlanmışsa, dosya adı tamamlama (Ignacio dediği gibi/readdir, opendir kullanarak) kullanılır.

    Kendi tamamlamaları tanımlamak için bölüm bölümünde Programmable Completion açıklanmıştır. Kısacası, ile complete «options» «command» bazı komut tamamlanması için tanımlayın. Örneğin complete -u su diyor su komut için bir argüman tamamlarken, mevcut sistem kullanıcıları için arayın.

    Eğer bu daha karmaşık ise can kapak (farklı tamamlanmış bağımsız değişken ındex bağlı olarak, örneğin,ya da önceki değişkenlere bağlı olarak) normal seçenekleri o zaman mümkün olan tamamlamalar listesini oluşturmak için bir kabuk işlevi çağırmak -F function, kullanabilirsiniz. (Bu çok karmaşık, etkileşimli bağlı olan gıt tamamlanması için örneğin bazen kullanılır seçenekleri göz önüne alındığında, ve kullanarak bazen dalları isimleri bash bilmediği bir şey vardır.

Mevcut tamamlamaları geçerli bash ortamınız sadece complete kullanılarak tanımlanan Olası ne olduğu konusunda bir izlenim var listeleyebilirsiniz. Eğer bash-completion paketi yüklü (veya ancak adı üzerinde sistem), tamamlamaları için bir sürü komutlar yüklü olarak Wrikken dedi, /etc/bash_completion içeren bir bash komut dosyası daha sonra sık sık idam shell başlangıç için yapılandırma bu. Ek özel tamamlama komut/bash_completion /etc yerleştirilebilir.d; O /bash_completion/etc kaynaklıdır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ryan Ha

    Ryan Ha

    9 NİSAN 2006
  • SegaAmerica

    SegaAmerica

    5 Mart 2008
  • tunez4you

    tunez4you

    20 EKİM 2008