터미널 버그? 혼합 문자


0

Ubuntu 14.04를 사용하고 있으며 터미널에 문자 문제가 있습니다.

이것은 내가 짧은 명령을 쓸 때 내 단말기이며, 이것은 내가 한 줄에 들어갈 수있는 문자를 초과하는 명령을 쓸 때 내 단자입니다.

다양한 글꼴을 변경하려고 시도했지만 여전히 동일한 문제가 발생합니다. 나는 또한 글꼴 크기를 변경하려고했지만 여전히 아무것도하지 않았습니다.

또한 두 번째 링크와 같은 명령을 작성하고 문자를 삭제하려고하면 상황이 실제로 추악 해집니다. 문자를 삭제하기 시작하면 나머지 줄이 사라지지만 Enter 키를 누르면 명령이 올바르게 해석됩니다.

어떻게해야합니까?


이 '버그'가 나타나기 전에 무엇을하고 있었는지 기억하십니까? '재설정'명령이 무엇을 변경합니까?
Tobias

reset 명령은 아무것도하지 않습니다. 이 문제가 3 주 이상있었습니다. 막 짜증나 기 시작했습니다.
sokras

답변:


0

이것은 어떤 터미널입니까? 의 결과를 echo $TERM질문에 추가하십시오 .

프롬프트에서 및로 둘러싸이지 않은 이스케이프 시퀀스 (에 의해 생성됨 tput) 가있는 경우에 발생할 수 있습니다 . 이러한 백 슬래시 괄호는 Bash에게 이스케이프 시퀀스가 ​​화면의 수평 공간을 차지하지 않는다고 말합니다. 이스케이프 시퀀스 주위에 이스케이프가 없으면 Bash는 이스케이프 시퀀스의 각 바이트를 보이는 문자로 계산하여 명령 기록을 통해 앞뒤로 이동할 때 이전에 표시된 명령을 엉망으로 만듭니다.\[\]

출처

프롬프트에 이스케이프 시퀀스가 ​​있는지 확인하려면 echo "$PS1" | od -c값을 가진 문자를 사용하십시오 033. 그 점을 발견하면 프롬프트에 이스케이프 시퀀스가 ​​있습니다.

033프롬프트에서 찾은 경우

프롬프트 PS1가 설정된 위치를 확인하십시오 .grep -i ps1 .*|less

그런 다음 (종종에서의 해당 파일을 편집 .bashrc)와 함께 순서를 포위 \[하고 \].


내가 보여준 터미널은 xterm이고 그렇습니다. 실제로 033의 값을 가지고 있습니다. 어떻게 해결할 수 있습니까?
sokras

다음으로 재설정 할 수 있어야합니다reset tput
Tobias

실제로 수정 사항을 포함하도록 수정 된 답변입니다.
Jan

@ Tobias reset tput mes this : reset: unknown terminal type tput Terminal type? xterm에 입력하지만 아무 일도 일어나지 않습니다. @Jan PS1이 설정되어있는 곳을 어떻게 확인할 수 있습니까? 위의 명령을 입력하면 많은 줄이 나타납니다. 무엇을 찾아야합니까? 많은 행에서 그것은 말한다PS1= ...
sokras

@sokras 출력 결과는 다음 형식이어야합니다. filename : string 여기서 filename은 문자열이 포함 된 파일의 이름이고 string은 'ps1'이 포함 된 실제 텍스트입니다. PS1 =을 포함하는 모든 줄은 파일 이름으로 시작해야합니다. 그 파일 이름을 알려주시겠습니까?
Tobias
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.