최종 색상 이론

최종 색상 이론

TLDR: 터미널 색상 뒤에 있는 이론은 무엇입니까?

LS_COLORS에 고정된 숫자 값이 있습니다. no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;33:*.cmd=00;33:*.exe=00;33:*.com=00;33:*.btm=00;33:*.bat=00;33:*.sh=00;33:*.csh=00;33:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:*.c=00;41:*.cpp=00;41:*.h=00;44:*.cu=00;43:*.cuh=00;43:ex=00;32

gnome-terminal, urxvt 및 yakuake가 동일한 파일 형식에 대해 크게 다른 색상을 표시하는 원인이 무엇인지 궁금합니다. 차이점은 매우 유사한 것(그러나 분명히 다른 것)부터 매우 다른 것(갈색 대 노란색)까지 다양합니다.

또한 vim 색상이 표시되는 방식에도 차이가 있어 세 터미널 모두에서 색상이 매우 다르게 보입니다. 이는 t_Co=8(vim은 8색 지원)과 t_Co=256(vim은 256색 지원) 모두에 해당됩니다.

설상가상으로 영어 색상 이름으로 인터넷에서 .XResources를 복사하면 vim의 동일한 색상 구성표가 매우 다른 색상으로 표시됩니다. (나는 이것이 vimscheme의 이름 사용과 .Xresources의 색상 재정의에 기인한다고 생각합니다)

누군가 터미널 색상이 작동하는 방식에 대한 이론을 이해하도록 도와줄 수 있습니까? 링크가 잘 작동 할 것입니다. 특히 관대하다고 느끼는 사람이 있다면 특히 vim 환경 내에서 항상 표준 환경을 유지할 수 있는 팁을 제공할 수도 있습니다.

yakuake에서는 내 색상 테마가 "Linux 테마"(표준 테마인 것 같음)인 반면, gnome 터미널에는 테마가 없습니다. "사용자 시스템 색상" 옵션을 선택하면 색상이 더욱 심각해지고 출력 자체가 손상됩니다(예: 바닐라는 ls각 파일을 다른 줄에 표시합니다). urxvt의 경우 .Xresources 및 Yield에서 정의한 유일한 색상 관련 필드는 다음 xrdb -q과 같습니다.

Urxvt.background: #000000 
Urxvt.foreground: #FFFFFF

좋아, 내가 말하는 내용을 설명하기 위한 스크린샷 몇 개(첫 번째는 yakuake에서, 두 번째는 urxvt에서)

밝게 타오르다 urxvt에 확실히 차이가 엄청나네요...

사용:http://www.vim.org/scripts/script.php?script_id=1349(첫 번째는 yakuake, 두 번째는 urxvt)

여기에 이미지 설명을 입력하세요. 여기에 이미지 설명을 입력하세요.

답변1

인덱스 팔레트에는 해석이 가능한 실제 렌더링이 있습니다. 실제 하드웨어에는 다양한 표준이 있습니다(특히 갈색과 진한 노란색, 갈색이 더 유용하고 보기에도 좋습니다).

이것 좀 보세요: https://en.wikipedia.org/wiki/Color_Graphics_Adapter

터미널 에뮬레이터에서는 구성에 따라 다릅니다. 대부분의 에뮬레이터에는 echo $TERM에뮬레이트하는 레거시 하드웨어의 종류를 나타내는 정의된 모드( )가 있습니다 . 색상은 가장 작은 변화입니다. 다른 제어 코드(커서 위치를 제어하는 ​​보이지 않는 문자열, 굵은 글씨/반전 비디오, 깜박임 등)도 다른 코드를 가질 수 있습니다. 터미널 유형이 올바르게 설정되지 않은 경우(예: SSH를 통해) 커서를 누르면 이와 같은 정크가 때때로 나타납니다. 보다 정교한 에뮬레이터 중 일부는 실제로 고대 색상 표준에 관심이 없으며 사용자가 자신의 색상을 정의할 수 있도록 합니다(Yakuake에서 사용하는 Konsole - 색상 프로필이 있음). 최신 터미널 에뮬레이터는 실제로 이보다 더 많은 색상(256개)을 지원하지만, 물론 터미널에서 실행 중인 응용 프로그램은 이 기능(termcap 등을 통해 또는 $TERM변수를 읽어서)을 인식하고 올바른 문자를 출력해야 합니다. 콤비네이션.

당신이 정말로 읽고 싶은 것은 이것입니다. 컬러맵도 있습니다: https://en.wikipedia.org/wiki/ANSI_escape_code

관련 정보