Mac OS X terminal.app가 때로는 newline을 다르게 해석하기 시작합니다! 이 문제를 해결할 수 있습니까?


1

이제는 Mac OS X Terminal이 이상한 상태에 빠지게되어 개행 문자가 정상적으로 해석되지 않습니다. 마치 줄 바꿈 부분을 수행하는 것처럼 보이지만 캐리지 리턴은 수행하지 않습니다. 예를 들어, 나는 보통 다음과 같은 것을 볼 수 있습니다 :

% git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#

그러나 터미널이이 홀수 모드로 끝나면 대신 다음과 같이 표시됩니다.

% git status
# On branch master
                  # Untracked files:
                                    #   (use "git add <file>..." to include in what will be committed)
                                                                                                      #

이 문제를 해결하기 위해 새로운 터미널 창을 만들 수 있지만 조금 짜증나게합니다. 스크롤 백 버퍼에 뭔가 필요한 경우를 대비하여 가능한 경우 같은 창을 활성 상태로 유지하고 싶습니다. 이 일이 잘못되었을 때 제자리에서 문제를 해결하기 위해 할 수있는 일이 있습니까?

(필자는 관련성이 있는지 모르지만, 보통 이맥을 종료 할 때 이것을 얻습니다. 때때로, 나는 잘못된 것이고, 다른 명령을 우연히 선택합니다. C-x C-c. 무슨 일이 일어날 지 알기도 전에 내 손가락이 그것을 취소하기 때문에 어떤 명령인지는 모르겠지만 이맥스가 사라지면 터미널은이 재미있는 새로운 모드에 있습니다.)

답변:


3

이 문제가 다시 발생하면 터미널에서 다음 명령을 실행하십시오.

reset

이렇게하면 터미널이 기본값으로 재설정되고 문제가 해결 될 것입니다.


2

초기 터미널 (및 프린터)이 LF (ASCII 10) 문자를 받으면 커서 (인쇄 헤드)를 수평으로 이동하지 않고 다음 줄로 전진시킵니다. 따라서 LF로만 구분 된 일련의 문자 / 단어는 계단처럼 보이게됩니다. 이것은 당신이보고있는 것입니다.

프로그램이 다음 줄의 시작 부분으로 이동하기를 원할 때 CR (ASCII 13)과 LF를 터미널에 설정합니다. CR은 커서를 현재 행의 시작 부분으로 이동시키고 LF는 다음 행으로 진행합니다.

유닉스 시스템의 tty 드라이버는 보통 출력 LF를 CR과 LF의 조합으로 변환하는 선택적인 출력 사후 처리 기능을 가지고있다.

현재보고있는 문제는 터미널 에뮬레이터에서 사용하고있는 tty가 출력 사후 처리 기능을 사용할 수 없도록 설정 한 것입니다. 다음 명령을 사용하여 출력 사후 처리 및 LF → CR LF 변환을 다시 수행 할 수 있습니다.

stty opost onlcr

이러한 유형의 출력 처리는 "전체 화면"터미널 기반 프로그램에서 종종 비활성화되어 커서를 더 잘 제어 할 수 있습니다. 따라서 이러한 프로그램이 tty 설정을 복원 할 수없는 방식으로 충돌 (또는 종료)되면 "계단 단계 모드"가됩니다. 이러한 충돌 후 영향을받을 수있는 다른 tty 설정이 있기 때문에 효과를 정리하기 위해 좀 더 철저하게 필요한 것이 필요할 수 있습니다. 다음 명령을 사용하여 현재 tty 설정을 적절한 기본값으로 재설정 할 수 있습니다.

stty sane

그만큼 reset 명령은 무엇을 많이한다. stty sane 다양한 리셋 / 초기화 제어 시퀀스를 터미널 에뮬레이터로 보내는 것뿐입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.