![readline - 줄 끝에 도달할 때 줄 바꿈이 아닌 캐리지 리턴만 실행하는 이유는 무엇입니까?](https://linux55.com/image/34354/readline%20-%20%EC%A4%84%20%EB%81%9D%EC%97%90%20%EB%8F%84%EB%8B%AC%ED%95%A0%20%EB%95%8C%20%EC%A4%84%20%EB%B0%94%EA%BF%88%EC%9D%B4%20%EC%95%84%EB%8B%8C%20%EC%BA%90%EB%A6%AC%EC%A7%80%20%EB%A6%AC%ED%84%B4%EB%A7%8C%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 다음을 사용하여 Python 응용 프로그램을 개발했습니다.지침대화형 명령줄 인터페이스를 만드는 모듈입니다. 이것지침모듈 목적독서선명령줄 관리: 완료, 기록...
내 문제는 내 컴퓨터에서 응용 프로그램을 사용하려고 하는데 너무 긴 줄을 입력하면 줄의 시작 부분으로 돌아가서 새 줄을 추가하지 않는다는 것입니다. 그래서 나는 그 줄 자체에 글을 썼다. 이로 인해 탐색 및 편집 기록 명령이 정말 어려워졌습니다. 그래도 내 개발 상자에서는 잘 작동합니다.
Python을 시작하는 쉘을 bash에서 sh로 변경하려고 시도했지만 차이가 없었습니다. 사용하는 터미널을 Terminator에서 XTerm 또는 UXTerm으로 변경해 보았지만 차이가 없었습니다.
그 기원에 대해 어떻게 추측하고 이 문제를 해결하는 방법은 무엇입니까?
편집하다: 이것은 스크린샷입니다. 오류 원인을 찾았는데, 터미널 줄 길이에 비해 색상 문자가 잘 처리되지 않아서 발생하는 것으로 추측됩니다.
스크린샷의 첫 번째 부분(녹색 선 위)에서는 색상이 있는 팁(분홍색 /을 볼 수 있음)을 사용하고 줄 끝에 도달하면 팁을 덮어쓰기 시작합니다. 계속해서 쓰면 원래 첫 줄을 완전히 덮어 전체 줄을 쓴 다음 새 줄을 입력하기 시작할 수 있습니다.
두 번째 부분(녹색 선 아래)에서는 줄 끝까지 썼는데 적절한 순간에 줄 바꿈이 나타납니다.
이 행동의 이유는 무엇입니까? (앞서 말했듯이 모든 구성에서 이런 현상이 발생하는 것은 아닙니다.) 어떻게 해결합니까?
답변1
이것은 나의 색상 사용에서 비롯됩니다. 다음 문자열을 사용하여 텍스트에 색상을 지정합니다.
class colors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
\001
및 문자를 추가했는데 \002
이제 작동합니다!
class colors:
HEADER = '\001\033[95m\002'
OKBLUE = '\001\033[94m\002'
OKGREEN = '\001\033[92m\002'
WARNING = '\001\033[93m\002'
FAIL = '\001\033[91m\002'
ENDC = '\001\033[0m\002'