그리고 " $TERM
" 라고 말하지 마십시오 – 항상 그렇습니다 xterm
.
어떻게 할 수 bash
스크립트는 xterm을 구체적으로의 사용하여 ITerm, Terminal.app 여부, 또는 실제로에서 실행중인 터미널 무엇을 말해?
reset
Terminal.app 및 iTerm2의 상자에서 ¹ 작동하지 않기 때문에 묻습니다. 그러나 iTerm2는 터미널 재설정 ( \x1b]50;ClearScrollback\x07
) 을 수행하기위한 이스케이프 시퀀스를 인식하고 감지 할 수 있다면 reset
올바른 일을하는 별칭으로 재정의 할 수 있습니다 . AFAICT, Terminal.app에는 재설정 시퀀스가 없으며 사람들은 그 말을 해킹하기 위해 말도 안되는 톰 해커에 의지합니다 .
여기서 최종 목표는 reset
OS X 또는 Linux에서 작업하든 SSH를 통해 로컬 또는 원격으로 작업하든 동일하게 작동하는 것입니다. (어떤 것을 기억하려고 할 필요가 없으며, 수행하고 작업하는 것이 유용합니다 reset && command-that-outputs-a-bunch
.) Terminal.app 및 iTerm은 reset
올바르게 구현하지 않아이 계획에서 렌치를 던지고 있습니다.
이것은 단순히 재정의 reset
가 그다지 쉽지 않다는 것을 의미합니다 . Linux 시스템에 있다면 gnome-terminal
올바른 이스케이프 시퀀스를 보내려면 내가 사용 중인지 또는 iTerm 인지 알아야합니다 .
(I가 필요한 경우에도 방법이 있나요 ioctl
이 무엇 터미널 물어) 정말 이다?
¹이 질문의 목적 상, 재설정은 화면을 지우고 커서를 재설정하고 스크롤 백 버퍼를 초기화해야합니다.
reset
손가락을 알고 있기 때문에 이제 그것을 지우고 싶을 때 바람직하게는을 사용할 수 있기를 원합니다 .
reset
터미널 에뮬레이터의 스크롤 백 내용을 지우는 명령을 기대하고 있지만 스크롤 백은 터미널 에뮬레이터 관련 기능이 아니기 때문에 그렇게 할 수는 없습니다. 터미널의 일부. 그러나 터미널은 ED (Erase in Display) 이스케이프 시퀀스 확장을 지원하여 스크롤 백을 지 웁니다 ESC [ 3 J
. 화면을 지우고 다음과 같이 사용할 수 있습니다.reset && printf '\e[3J’
xterm
(통과 TERM=xterm
) 으로 선언 하면 XTerm의 수퍼 세트를 에뮬레이트하여 재설정시 스크롤 백을 지우는 것으로 기대합니다. ( "blue"에 대한 이스케이프 시퀀스를 보낸 것처럼 파란색을 기대할 것입니다.) 물론 내 xterm은 나 Erase is backspace.
에게 아무 것도 감사하지 않습니다. 그것은 단지 성가신 일입니다.
Terminal.app
의 설정, 터미널 탭 을 열고 스크롤 백 라인을 0으로 설정 하면 어떻게됩니까 ? 현재 줄 위의 모든 텍스트 또는 화면 상단의 모든 텍스트를 비활성화합니까? 나는 그것이 당신이 요구 한 것과 정확히 일치하지는 않습니다.