저는 xterm을 터미널 에뮬레이터로 사용하는 Reflect x를 사용하고 있습니다. 창을 여러 번 최대화하고 최소화하면 이전 명령에 액세스하려고 할 때 텍스트가 깨집니다. 이 질문은 다음과 매우 유사합니다.이것하지만 저는 bash 대신 ksh 쉘을 사용하고 있습니다. 그렇다면 ksh 버전의 솔루션은 무엇입니까? 감사해요!
답변1
실제 xterm 창 크기 조정 문제를 해결/해결하려면 일반적으로 resize
및 명령을 사용해야 합니다 .reset
지침 resize
:
$ eval `resize`
단독으로 실행 하면 resize
열과 행 설정이 보고됩니다.
지침 reset
:
$ reset
인용하다
답변2
이 reset
명령은 크기 조정을 정리하는 데 도움이 되지 않습니다.
이 resize
명령이 도움이 될 수 있지만 문제가 있습니다. 두 가지 주요 사용 사례가 있습니다 resize
.
- 예를 들어 NAWS(Negotiation About Window Size)를 지원하지 않는 직렬 인터페이스를 통해 연결하는 경우 시스템에 화면 크기를 알릴 수 있습니다. 이는 FAQ에 유용합니다.
- 기존 사용시 불필요하게 설정되었던 환경변수를 수정하였습니다
resize
. 그러면 오류 보고서가 생성됩니다.
이 resize
프로그램은 원래 termcap 기반 시스템이 일반적이었을 때 작성되었습니다. 일반적인 termcap 설명을 보면 화면이 얼마나 큰지 알 수 있습니다. 1980년대에 작성된 대부분의 termcap 응용 프로그램에는 화면의 실제 크기를 묻는 시스템 호출이 포함되어 있지 않았기 때문입니다. 이는 1980년대 후반에 정보를 얻기 위한 신호 및 시스템 호출이 도입 되면서 SIGWINCH
바뀌기 시작했습니다 .
LINES
그러나 이러한 레거시 응용 프로그램으로 인해 (기본적으로) 및/또는 COLUMNS
변수가 설정된 경우 해당 변수가 termcap 설명을 재정의한다는 규칙이 설정되었습니다 .
여태까지는 그런대로 잘됐다.
LINES
그러나 일부 응용 프로그램(본질적으로 termcap 응용 프로그램인 bash와 같은 셸 포함) 은 실제 화면 크기보다 이러한 변수에 더 많은 주의를 기울입니다 .COLUMNS
만약 너라면평가하다출력에서 resize
이러한 변수를 설정합니다. 창 크기가 다시 조정될 때 화면 크기 변경을 따르는 프로그램이 더 이상 그렇게 하지 않는다는 것을 알 수 있을 때까지는 괜찮아 보입니다.
문제 없습니다. 방금 했던 작업을 반복하면 됩니다 resize
.
반면에 그냥 실행하면resize
아니요출력을 평가하여 시스템의 화면 크기 개념을 업데이트합니다.
추가 자료:
resize
-환경 및 터미널 설정을 현재 xterm 창 크기로 설정tset
,reset
-터미널 초기화- use_env,
LINES
합계를 무시할 수 있는 라이브러리 함수입니다.COLUMNS
- SIGWINCH 처리(크기 조정 이벤트)