TAB otomatik tamamlama, tamamlanacak seçenekleri nasıl bulur?


Yanıtlar:


22

Komuta bağlı olarak:

  • Birisi, seçenekler de dahil olmak üzere, bağımsız değişkenlerin olası tamamlamaları için bir işlev yazmış olabilir. Bazı komutlar için işlevleri /etc/bash_completion.d/*(veya bazı sistemlerde farklı bir konum) bulacaksınız . Bu işlevler yerleşik olarak kaydedilir (örneğin , bir komuta bastığınızda işlevi çağırmasını bash söyler ). Bash “burada olası tamamlamalar vardır” derken söylemek için yerleşik kullanırlar .complete complete -F _find find_findTabfindcompgen
  • Bazı komutlar için bash, argümanla komutu çağırır --helpve çıktıyı ayrıştırır. Bu tür komutlar complete, örneğin complete -F _longopt ls; _longoptAslında, bir komut oluşturma işlevidir, bu da bir komutun çıktısını sabit bir liste kullanmak yerine ayrıştırmaktır. (Olası tamamlamaları üretmek için bir komutun çıktısını çözümleyen daha özel tamamlama işlevleri vardır; /etc/bash_completion.d/*örneklere bakın.)
  • Takma adlar gibi şeyler için, tamamlama işlevi bash'ın iç tablolarında onları arar. completeYerleşik bunun için seçenekleri, örneğin sahiptir -Aadlar için.

10

Dosyaya bir göz atın

/ Etc / bash_completion

ve dosyaları dizinden izleyin:

/etc/bash_completion.d

Cevabı bulacaksınız.


2

Bash tamamlama desteği, bash tamamlama paketi tarafından Debian ve Ubuntu'da sağlanır . Ayrıca , bash tamamlama dosyalarını kaynaklamak için aşağıdakileri /etc/bash.bashrcve / veya içindeki açıklamalardan da haberdar olmanız gerekir .bashrc. Aşağıdakilerden /etc/bash.bashrc:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

Bunun çalışması için. Genelde ikisini de rahatsız ediyorum. Debian'da etkileşimli / oturum açma kabukları ile uğraşmak biraz karışıklık yaratıyor.

Benzer yorumlar muhtemelen diğer dağıtımlar için de geçerlidir, ancak kaynak kullanımı varsayılan olarak mümkün olabilir.

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.