스크린과 고양이 $TERM은 무엇이 되어야 할까요?

스크린과 고양이 $TERM은 무엇이 되어야 할까요?

tmux보고하는 이유

$TERM=screen-256color

일반적 kitty으로 보고됨

$TERM=xterm-kitty

tmux실행하는 경우 어느 것을 사용해야 합니까 kitty? 고급 기능이 명확하게 kitty제공되며 보고 기능도 합리적입니다 xterm-kitty. screen-256프로그램이 화면에서 실행 중인지 알아야 한다고 화면에서 보고하는 이유는 무엇입니까 ? 키티에서 실행하기 위해 화면을 호출할 때 문제가 있습니까 xterm-kitty?

답변1

키티 내부에서 tmux를 실행하는 경우 어떤 것을 사용해야 합니까?

tmux당신이 달릴 때~ 해야 하다TERM=screen, 또는 또는 또는 TERM=tmux같은 파생어 중 하나를 사용합니다 . TERM=screen-256colorTERM=tmux-256color

그 남자가 tmux(1)말했지...

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

..추가 설명을 위해...

이 세션에서 생성된 새 창에 대한 기본 터미널(TERM 환경 변수의 기본값)을 설정합니다. tmux가 제대로 작동하려면 "screen" 또는 그 파생 항목으로 설정되어야 합니다.

...그들은 또한 강조했다~ 해야 하다.

이것티먹스 위키추가 설명과 답변을 위해 계속 진행합니다…

tmux 내부의 TERM은 "screen", "tmux" 또는 이와 유사한 것(예: "tmux-256color")이어야 합니다. 존재하지 않는 문제를 신고하려고 애쓰지 마세요!

화면에서 실행 중인지 알아야 하는 프로그램이 있습니까?

예. 예를 들어 많은 프로그램은 tput올바른 값을 사용하지 않으면 ( 또는 )에서 실행될 때 올바르게 표시되지 않습니다.screentmuxTERM

학기란 무엇입니까? 그것은 무엇을 합니까?

환경 변수 TERM은 terminfo(5) 데이터베이스에서 읽을 터미널 설명의 이름을 응용 프로그램에 알려줍니다. 각 설명에는 터미널을 제어하기 위해 무엇을 보낼지 애플리케이션에 알려주는 여러 개의 명명된 함수가 포함되어 있습니다. 예를 들어, "cup" 함수에는 커서를 위쪽으로 이동하기 위한 이스케이프 시퀀스가 ​​포함되어 있습니다.

TERM이 애플리케이션이 실행 중인 터미널에 대한 올바른 설명을 가리키는 것이 중요합니다. 설명이 올바르지 않으면 애플리케이션에 오류가 발생할 수 있습니다.

infocmp(1) 명령은 터미널 설명의 내용을 표시하고 tic(1) 명령은 파일에서 설명을 작성 및 설치합니다(둘 다 일반적으로 -x 플래그가 필요함).

kitty xterm-kitty에서 실행할 화면을 호출하는 데 문제가 있나요?

TERM실행 화면의 값이 올바르게 설정되어 있고(예: TERM=screen-256color) 유효한 terminfo 문자열이 있거나 이를 처리하는 방법을 알고 있는 screen한 반드시 그럴 필요는 없습니다 .tmux

내 컴퓨터의 다른 파생 상품은 다음과 같습니다.

/usr/share/terminfo/s/screen
/usr/share/terminfo/s/screen-16color
/usr/share/terminfo/s/screen-256color
/usr/share/terminfo/s/screen.Eterm
/usr/share/terminfo/s/screen.gnome
/usr/share/terminfo/s/screen.konsole
/usr/share/terminfo/s/screen.linux
/usr/share/terminfo/s/screen.mlterm
/usr/share/terminfo/s/screen.mrxvt
/usr/share/terminfo/s/screen.rxvt
/usr/share/terminfo/s/screen.teraterm
/usr/share/terminfo/s/screen.vte
/usr/share/terminfo/s/screen.xterm-r6
/usr/share/terminfo/s/screen.xterm-new
/usr/share/terminfo/s/screen.xterm-xfree86

TERM설정이 완료되면 실행할 준비가 된 것입니다 infocmp. 값에 유효한 terminfo가 있는지 여부를 보고합니다. 추가 테스트를 통해 다음과 같은 기본 terminfo 기능을 확인할 수 있습니다.

for terminfos in $(find /usr/share/terminfo/s -type f -name 'screen*' -printf '%f\n' -o -name 'tmux*' -printf '%f\n'); do export TERM=$terminfos; printf "%s: %sthis is foreground color 10 %sitalics%s and now all attributes are turned off\n" "$terminfos" "$(tput setaf 10)" "$(tput sitm)" "$(tput sgr0)"; done

답변2

Kitty의 고급 기능은 다음 과 관련이 있습니다 tmux.tmux

$ kitty icat ~/Pictures/fc.jpg 
Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
$ TERM=xterm-kitty kitty icat ~/Pictures/fc.jpg 
Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl

TERM따라서 Kitty가 보고한 내용과 일치하도록 tmux에서 퍼지하더라도 기껏해야 막다른 골목을 찾을 수 있다는 것을 알 수 있습니다 . Ranger에서 미리보기를 렌더링하려고 하면 범위가 충돌합니다.

답변3

다음은 몇 가지 질문입니다. 더 흥미로운 답변은 다음과 같습니다.

  • tmux가 보고하는 이유

    $TERM=screen-256color

이전 버전의 tmux에서는 "거기에 있기 때문에" TERM=screen 또는 TERM=screen-256color를 사용했습니다. 결국 상황은 (a) tmux 개발자가 기능을 추가하기를 원했고 (b) 화면이 기울임꼴 사용을 방해했기 때문에 상황이 바뀌었습니다.

  • 일반적으로 새끼 고양이는 보고합니다.

    $TERM=xterm-kitty

    키티 내부에서 tmux를 실행하는 경우 어떤 것을 사용해야 합니까?

tmux가 선택하도록 해야 합니다(색상 및 기능 키를 처리하는 방법을 보려면 외부 터미널 설명을 참조하세요).

  • 화면이 화면 256이라고 보고하는 이유는 무엇입니까?

아마도 "screen-256color"라고 쓰여 있을 것입니다. GNU 화면은 외부 $TERM 값을 보고 내부 값을 선택합니다. 하지만 이 특정 파일은 사용자의 .screenrc 파일에서 나옵니다(보통 패키지 프로그램이 관련될 수 있음).

  • 화면에서 실행 중인지 알아야 하는 프로그램이 있습니까?

설마...

  • kitty xterm-kitty에서 실행할 화면을 호출하는 데 문제가 있나요?

일부screen기본적으로 구성에서는 bce(배경색 삭제)를 사용합니다. Kitty는 이 기능을 지원하지 않습니다(ymmv).

관련 정보