tmux가 TERM 변수를 screen으로 설정하는 이유는 무엇입니까?

tmux가 TERM 변수를 screen으로 설정하는 이유는 무엇입니까?

tmux매뉴얼 페이지를 인용하면 다음과 같습니다 .

tmux 내에서 실행되는 모든 프로그램의 경우 TERM 환경 변수를 "screen"으로 설정해야 합니다. 새 창은 자동으로 "TERM=screen"을 해당 환경에 추가하지만 쉘 시작 파일에서 이를 재설정하지 않도록 주의해야 합니다.

tmux세션이 모든 터미널(예: 원격)에 연결될 수 있기 때문입니까 ? screen이것이 가장 낮은 공통 분모입니까? 내 터미널을 알고 있는 경우 예상치 못한 결과나 지원되지 않는 일부 기능 중단(스크롤링 등) 없이 강제로 실행할 수 있나요?

답변1

이는 이전에 설치된 GNU 화면 터미널 설명을 활용하기 위해 수행됩니다.

둘 다멀티플렉서그리고화면애플리케이션에 "동일한" 터미널 설명을 제공하여 다른 터미널에서의 연결을 단순화합니다. tmux 및 screen 프로그램은 내부(TERM=screen)와 외부(xterm, linux 등) 간의 차이를 처리해야 합니다. 따라서 screen터미널 설명은 "어디서나"(보통 ncurses에 의해) 설치되었습니다.

몇 가지 차이점이 있습니다.

  • GNU 화면에는아주 오래된 질문"눈에 띄는" 기능을 나타냅니다(기술적으로 이것은 특정 터미널 기능이 아니라 Curses 애플리케이션을 용이하게 하기 위해 만들어진 추상화입니다). tmux에는 이러한 제한이 없습니다. 하지만 개선된용어=tmux"어디에나" 있을 필요는 없습니다.
  • GNU 화면에는 혼합 터미널을 사용하여 설명된 기능이 있습니다. 외부 TERM=xterm 및 "screen.xterm"이 존재하는 경우 해당 값을 내부 TERM 값으로 선택합니다. (예를 들어 참조터미널 데이터베이스). tmux는 이것을하지 않습니다.

답변2

~처럼멀티플렉서 2.1,당신은 그것을 사용할 수 있습니다tmux 용어 정보:

"기본 터미널"은 이제 세션 옵션입니다. 또한 "screen-*"로 설정하면 화면 기능이 시뮬레이션됩니다. 기울임꼴을 원하면 "tmux"로 설정할 수 있지만 이는 여전히 새로운 기능이며 이전 ncurses가 설치된 모든 플랫폼에서 반드시 지원되는 것은 아닙니다.

관련 정보