Takip et

Bash’te Programlanabilir Tab Tamamlama

Bash’te Programlanabilir Tab Tamamlama

Bash’in sunduğu güçlü özelliklerden biri de tab tamamlama özelliğidir. Bu özellik, komutları ve dosya isimlerini hızlı bir şekilde tamamlamanıza yardımcı olarak zaman kazandırır. Ancak, bash’in varsayılan tab tamamlama özelliği sınırlıdır. Neyse ki, bash’in sağladığı güçlü komut tamamlama mekanizması, komut tamamlama davranışını özelleştirerek daha akıllı ve daha kullanışlı hale getirmenizi sağlar. Bu makalede, bash’te programlanabilir tab tamamlama ile ilgili temel kavramları ele alarak, daha verimli bir komut satırı deneyimi nasıl elde edebileceğinizi keşfedeceğiz.

Tab Tamamlama Nasıl Çalışır?

Bash’te tab tamamlama, bir komutu yazarken, girdiğiniz metinle eşleşen seçenekleri listeleyerek çalışır. Örneğin, ls komutunu yazdıktan sonra Tab tuşuna basarsanız, mevcut dizindeki tüm dosya ve dizinlerin bir listesi gösterilir. Bu listede, girdiğiniz metinle başlayan tüm seçenekler yer alır. Ardından, listede istediğiniz seçeneği seçmek için tekrar Tab tuşuna basabilir veya seçeneğin tamamını elle girebilirsiniz.

Komut Tamamlama İşlevleri

Bash’te tab tamamlama özelliğini özelleştirmek için komut tamamlama işlevleri kullanılır. Bu işlevler, belirli komutlar veya dosya türleri için tamamlama davranışını belirleyen komut kümeleridir. Bash, bu işlevleri /etc/bash_completion.d dizininde veya ~/.bashrc dosyasında tanımlar.

Özelleştirme

Bash’in tab tamamlama özelliğini özelleştirmek için aşağıdaki adımları izleyebilirsiniz:

1. Yeni bir tamamlama işlevi oluşturun

Yeni bir tamamlama işlevi oluşturmak için complete komutunu kullanın. Örneğin, mycommand adlı bir komut için tamamlama işlevi oluşturmak için aşağıdaki komutu kullanabilirsiniz:


complete -F _mycommand mycommand

Bu komut, _mycommand adlı yeni bir tamamlama işlevi oluşturur ve bu işlevi mycommand komutuna bağlar.

2. Tamamlama davranışını tanımlayın

Yeni tamamlama işlevi, _mycommand adlı işlev içinde tanımlanır. Bu işlev, girdiğiniz metnin tamamlanmasını sağlayacak seçenekleri belirler. Örneğin, mycommand komutunun -o ve -f gibi seçenekleri varsa, tamamlama işlevi bu seçenekleri içerecek şekilde tanımlanmalıdır.


_mycommand() {
  local cur prev opts
  opts="-o -f"
  cur="${COMP_WORDS[COMP_CWORD]}"
  prev="${COMP_WORDS[COMP_CWORD-1]}"
  if [[ ${cur} == -* ]]; then
    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
  fi
}

Bu kod parçası, mycommand komutunun seçeneklerini içeren opts değişkenini tanımlar. Ardından, compgen komutunu kullanarak bu seçeneklerden birini seçer. compgen komutu, girdiğiniz metinle eşleşen seçenekleri listeler.

3. Tamamlama işlevini yükleyin

Tamamlama işlevini ~/.bashrc dosyasına ekleyerek yükleyebilirsiniz. Bu dosya, bash’in her seferinde başlatıldığında yüklenen komutları içerir. Örneğin, _mycommand işlevini yükleyerek, mycommand komutunu kullandığınızda tab tamamlama özelliğinin aktif hale gelmesini sağlayabilirsiniz.


source 

Burada, , tamamlama işlevini içeren dosyanın yolunu temsil eder.

Örnek: Dosya Yolu Tamamlama

Dosya yolu tamamlama, dosya ve dizin isimlerini tamamlamanıza yardımcı olan kullanışlı bir özelliktir. Aşağıdaki tamamlama işlevi, dosya yolu tamamlamasını nasıl özelleştirebileceğinizi gösterir:


_path_completion() {
  local cur prev
  cur="${COMP_WORDS[COMP_CWORD]}"
  prev="${COMP_WORDS[COMP_CWORD-1]}"
  if [[ ${cur} == /* || ${cur} == .. || ${cur} == . ]]; then
    COMPREPLY=( $(compgen -d -- ${cur}) )
  else
    COMPREPLY=( $(compgen -f -- ${cur}) )
  fi
}

complete -F _path_completion *

Bu kod, _path_completion adlı bir tamamlama işlevi tanımlar. Bu işlev, * ile başlayan tüm komutlar için çalışır. İşlev, girdiğiniz metnin bir dizin mi yoksa bir dosya mı olduğunu belirler. Eğer bir dizin ise, compgen -d komutunu kullanarak o dizindeki alt dizinlerin listesini gösterir. Eğer bir dosya ise, compgen -f komutunu kullanarak o dizindeki dosyaların listesini gösterir.

Ek Bilgiler

Bash’te programlanabilir tab tamamlama, bash’in sunduğu güçlü özelliklerden biridir. Bu özelliği kullanarak, daha verimli bir komut satırı deneyimi elde edebilirsiniz. Daha fazla bilgi için, bash tamamlama ile ilgili çeşitli kaynakları inceleyebilirsiniz. Örneğin, Bash dokümantasyonu, tab tamamlama hakkında daha derinlemesine bilgi sağlar. Ayrıca, GitHub’da, bash tamamlama işlevleri için çeşitli örnekler ve kitaplıklar bulabilirsiniz.

Sonuç

Bash’te programlanabilir tab tamamlama, bash kullanma deneyiminizi önemli ölçüde geliştirebilir. Bu özelliği kullanarak, komutları ve dosya isimlerini daha hızlı ve daha kolay bir şekilde tamamlayabilirsiniz. Bu da, komut satırında daha hızlı ve verimli bir şekilde çalışmanıza olanak tanır.

Umarım bu makale, bash’te programlanabilir tab tamamlama hakkında size faydalı bilgiler sunmuştur. Daha fazla bilgi için, kişisel web sitemi ziyaret edebilirsiniz.

#Etiketler: bash, tab tamamlama, komut tamamlama, programlanabilir, özelleştirme, bash tamamlama, komut satırı, verimlilik, dosya yolu tamamlama, komut tamamlama işlevleri, bash dokümantasyonu

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık