LS_COLORS에서 'mi'를 설정하면 postgresql 및 python 탭 완성에 영향을 미치는 이유는 무엇입니까?
따라서 사용자 지정 LS_COLORS
설정이 있으며 다음과 같습니다.
mi=05;01;33:
or=05;01;33:
mi
ls의 목록보기에서 오른쪽 열에 or
있는 누락 된 파일 용이고 일반 ls 모드에서 누락 된 파일 용이거나 목록 모드에서 왼쪽에 있습니다. 위의 경우 둘 다 밝은 노란색으로 깜박이도록 설정합니다. 나는 그것을 깜박이는 것이 누락 된 링크를 스스로에게 알리는 가장 확실한 방법이라고 생각했기 때문에 그렇게 설정했습니다.
그러나 문제는 대화 형 모드에서 파이썬을 실행하고 탭 완성을 요청할 import re
때 re.[tab key]
입니다. 대신에 무엇이든 정상 목록 얻기의 mi
의 LS_COLORS
제안에 적용됩니다합니다. 따라서 화면이 깜박이는 텍스트로 가득 차서 경계선을 합리적인 속도로 읽을 수 없게됩니다.
postgresql 대화 형 모드 콘솔에서 탭 완성을 사용할 때도 같은 일이 발생합니다. 파이썬과 똑같습니다. 하지만 대부분의 다른 프로그램이나 유사한 프로그램은 괜찮으며 bash 완성도 괜찮습니다.
이러한 프로그램 ls
이 출력 형식을 지정하는 데 사용 됩니까? 나는 현재 mi
문제를 해결하기 위해 다른 것으로 다시 변경 했으며을 통해 끊어진 링크를 볼 수 있기 때문에 실제로는 중요하지 않습니다 or
. 하지만 왜 이런 일이 일어나고 있는지, 그리고 내가 그것을 멈출 수 있는지 정말 궁금합니다.
답변
기본 모듈 을 나열하여 확인할 수 있듯이 GNU readline 이 사용되고 있습니다.
$ python3
>>> import sys
>>> sys.modules.keys()
dict_keys([...,'readline', 'atexit', 'rlcompleter'])
Readline은 차례대로 LS_COLORS
. 부터 man 3 readline
,
colors -stats (Off) On으로 설정되면 readline은 파일 유형을 나타내는 다른 색상을 사용하여 가능한 완료를 표시합니다. 색상 정의는 LS_COLORS 환경 변수의 값에서 가져옵니다.
확신 할 수 없다면 대화 형 파이썬 세션으로 돌아가서 다음을 입력하십시오.
>>> 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
컬러 - 기록을 중지 한 후, 제안 달성 ( bs(
, ll(
등)은 단말의 정상적인 색이어야한다. 접두사는 a
여전히 색상을 상속 LS_COLORS
받으며 마찬가지로 다음을 사용하여 비활성화 할 수 있습니다.
readline.parse_and_bind("set colored-completion-prefix off")