terminfo를 사용하여 사람과 사람의 색상을 설정하는 방법은 무엇입니까?

terminfo를 사용하여 사람과 사람의 색상을 설정하는 방법은 무엇입니까?

나는 보았다이것질문에서 응답자는 termcap을 사용하여 less의 색상을 정의한 다음 man을 표시하는 데 사용할 수 있습니다. termcap은 더 이상 사용되지 않지만 더 쉽고 terminfo는 더 복잡하다고 말합니다.

유사한 설정을 수행하기 위해 terminfo를 사용하는 방법을 공유할 수 있는 사람이 있습니까?

$ cat ~/.LESS_TERMCAP 
export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
export LESS_TERMCAP_me=$(tput sgr0)
export LESS_TERMCAP_so=$(tput bold; tput setaf 3; tput setab 4) # yellow on blue
export LESS_TERMCAP_se=$(tput rmso; tput sgr0)
export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) # white
export LESS_TERMCAP_ue=$(tput rmul; tput sgr0)
export LESS_TERMCAP_mr=$(tput rev)
export LESS_TERMCAP_mh=$(tput dim)
export LESS_TERMCAP_ZN=$(tput ssubm)
export LESS_TERMCAP_ZV=$(tput rsubm)
export LESS_TERMCAP_ZO=$(tput ssupm)
export LESS_TERMCAP_ZW=$(tput rsupm) 

분명히 가장 먼저 변경해야 할 것은 이름인 .LESS_TERMINFO입니다. 그 외에는 아무런 아이디어가 없습니다.

나는 terminfo 페이지를 읽거나 구문 분석해 보았지만 그것이 관련성이 있는지는 모르겠지만 IIRC도 꽤 많은 색상을 사용하는 ncurses를 사용한다는 점을 제외하면 나에게는 별로 의미가 없습니다.

누구든지 색상에 대한 .TERMINFO 정의의 동등한 비트를 공유하는 데 도움을 줄 수 있습니까?

답변1

동일합니다. ncurses는 다음을 제공합니다.용어 모자less기본 터미널 데이터베이스가 사용되는 동안 인터페이스( 사용)는용어 정보. 거의 모든 termcap 응용 프로그램과 마찬가지로 less반환된 문자열의 구문을 자세히 살펴보지 않고 단지 물어볼 수 있는지만 주의합니다.md(terminfo에 해당하는 termcap 이름bold).

less이러한 termcap 이름 목록이 있으면 tgetstr시작 시 함수(termcap...)를 사용하여 목록을 읽고 termcap 이름에 추가된 환경 변수를 사용하여 이러한 값을 재정의할 수 있습니다 LESS_TERMCAP_.

tput그런데 예제의 모든 명령은 다음을 사용합니다.용어 정보이름. 이는 단순히 lesstermcap 인터페이스를 사용하여 읽을 수 있는 문자열을 할당하는 데 사용됩니다 .

추가 자료:

관련 정보