Renkli sekme tamamlama nasıl elde edilir?


18

Terminalde sekme tamamlama kullanılırken renkli çıktı almanın bir yolu var mı? Renklerim başka her yerde iyi, bu yüzden bir renk terminalini başarıyla etkinleştirdiğimi biliyorum.

Ubuntu'da bash kullanımı (10.10).


"Sekme tamamlama kullanılırken renkli çıktı" nasıl belirlenir?
slhck

Yanıtlar:


21

Bash içinde balık ve zsh gibi tamamlama sırasında renk çıktısı için bir tesis yoktur. Renk kontrol sekansları veren tamamlama işlevleri yazılabilir, ancak Bash seçimi doğrudan normal kullandığından ve renk kodları kullanacağı için renk seçimi ile veya renk kodu olmadan önerilen tamamlamaların kopyalarını saklamanız veya kullanıcı bir seçim yaptığında çıkarmanız gerekir. birşeyin önüne geçmek.

Bu sizin için önemli bir özellikse, zsh kullanmayı düşünmenizi tavsiye ederim.

Güncelleme

Bash 4.3 readline, sekme tamamlama sırasında yürütülebilir dosyalar, dizinler, vb. İçin sekme tamamlama renginin farklı renkler göstermesini sağlayan bir değişken ekler:

colored-stats

Yaklaşan Bash 4.4'teki Readline, sekmenin tamamlanması sırasında dizenin eşleşen bölümünü belirtmek için renk sağlayan bir değişken ekler.

colored-completion-prefix

Bu değişkenlerin değerlerini kullanarak

bind -v | grep color

Bunları ayarlamak için, ~/.inputrcdosyanıza aşağıdaki gibi satır (lar) ekleyin :

set colored-stats on

1
@Ryan: Zsh, Bash ile oldukça uyumludur. Muhtemelen anahtarı oldukça kolay bulacaksınız. Bash'in sahip olmadığı birçok güçlü özelliğe sahiptir (veya harici yardımcı programları kullanmanız gerekir). Temelde önemli ölçüde farklı olan sadece birkaç şey vardır. Bir örnek, dizi dizinlerinin sıfır temelli yerine tek tabanlı, ancak bunu etkileyen bir ayar var. Yine de sadece zsh kullanıyorum.
sonraki duyuruya kadar duraklatıldı.

1
@AstroFloyd: Bash Manua'dan : "Renk tanımları LS_COLORSortam değişkeninin değerinden alınır ." Bu değişkenin belgeleri burada . manSayfalar için bir ayar yoktur , bu nedenle ayarlarınızın nereye gittiğine bakmanız LS_COLORSve karşılık gelen renk kombinasyonunu bulmanız ve değiştirmeniz gerekir. Sistemimde, mansekme tamamlandığında sayfa adları renklenmiyor (ve bozuk semboller, lsçıktıda gri renkte kırmızı iken , ...
sonraki duyuruya kadar duraklatıldı.

1
... sekme tamamlanırken geçerli semboller gibi açık mavi renktedir).
sonraki duyuruya kadar duraklatıldı.

1
@AndyCarlson: mu bind -v | grep colorgöstermek hem set colored-completion-prefix onve set colored-stats on? Öyleyse, a harfini yazıp ardından sekmeye iki kez basarak ne olur? Ayarları bilgisayarınıza eklediyseniz ~/.inputrcancak yeni bir terminal başlatmadıysanız veya re-read-init-filecontrol-x control-r tuşlarına basarak yürütmediyseniz, ayarlar geçerli olmaz.
sonraki duyuruya kadar duraklatıldı.

2
@AndyCarlson ctrl-x ctrl-v tuşuna bastığınızda bash isteminde çıktı nedir?
sonraki duyuruya kadar duraklatıldı.

3

Ben (uygun komut seçenekleri ve bağımsız değişkenler için ancak dosya ve dizinleri için tamamlama renkleri bilmem /unix//a/133866 Bash 4.3 ve daha sonra ekleyebileceğiniz user495470 devletler) set colored-stats oniçin ~/.inputrcrenkli olsun tamamladığınızda ls <tab>.

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.