LS_COLORS'da 'mi' ayarı neden postgresql ve python sekmesi tamamlamayı etkiliyor?

Aug 18 2020

Bu yüzden özel bir LS_COLORSkurulumum var ve bunun içinde aşağıdakilere sahibim:

mi=05;01;33:
or=05;01;33:

mils'in liste görünümündeyken sağ sütundaki oreksik dosyalar içindir ve normal ls modunda veya solda liste modunda eksik dosyalar içindir. Yukarıdakiler, her ikisi de parlak sarı renkte yanıp sönecek şekilde ayarlar. Öyle ayarladım çünkü yanıp sönmesinin, eksik bir bağlantıya karşı kendimi uyarmanın en açık yolu olacağını düşündüm, bu harika çalışıyor.

Ancak sorun, python'u etkileşimli modda çalıştırdığımda ve sekme tamamlanmasını istediğimde, örneğin import reo zaman re.[tab key]. Bunun yerine sadece ne varsa normal liste alma mide LS_COLORSönerileri uygulanan alır. Bu yüzden, herhangi bir makul hızda okumayı imkansız hale getiren, yanıp sönen metinlerle dolu bir ekranla karşılaştım.

Postgresql etkileşimli mod konsolunda sekme tamamlamayı kullandığımda da aynı şey oluyor. Python ile tamamen aynı. Diğer programların veya benzerlerinin çoğu iyi olsa da, bash tamamlama iyidir.

Bu programlar lsçıktılarını biçimlendirmek için kullanıyor mu? Şu anda misorunun üstesinden gelmek için başka bir şeye geri döndüm ve bu gerçekten önemli değil çünkü hala bozuk bağlantıları görebiliyorum or. Ama bunun neden olduğunu ve durdurabilirsem gerçekten merak ediyorum.

Yanıtlar

1 Quasímodo Aug 18 2020 at 23:24

Varsayılan modülleri listeleyerek teyit edilebileceği gibi, GNU okuma satırı kullanılıyor:

$ python3
>>> import sys
>>> sys.modules.keys()
dict_keys([...,'readline', 'atexit', 'rlcompleter'])

Readline sırayla kullanır LS_COLORS. Kimden man 3 readline,

renkli istatistikler (Kapalı)
Açık olarak ayarlanırsa, okuma satırı, dosya türlerini belirtmek için farklı renkler kullanarak olası tamamlamaları görüntüler. Renk tanımları LS_COLORS ortam değişkeninin değerinden alınır.

Eğer ikna olmadıysanız, etkileşimli python oturumuna geri dönün ve şunu yazın:

>>> a<TAB><TAB>
abs(     all(     and      any(     as       ascii(   assert   async    await
>>> import readline
>>> readline.parse_and_bind("set colored-stats off")
>>> a<TAB><TAB>
abs(     all(     and      any(     as       ascii(   assert   async    await

Renkli-istatistikleri devre dışı bırakılması sonra önerilen tamamlanma ( bs(, ll(vs.), terminal normal renk olmalıdır. Önek, arengi yine de miras alır LS_COLORSve siz de aynı şekilde devre dışı bırakabilirsiniz.

readline.parse_and_bind("set colored-completion-prefix off")