Como usar o terminfo para definir cores para homem e menos?

0

Eu vi esta pergunta onde o respondente usa termcap para definir cores por menos que então poderia ser usado para como o homem poderia ser exibido. Ele disse que embora o termcap seja obsoleto, é mais fácil enquanto o terminfo é mais complicado.

Alguém poderia compartilhar como essa configuração semelhante poderia ser feita usando o 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) 

Obviamente, a primeira coisa que mudaria seria o nome, seria .LESS_TERMINFO. Além disso, não faz ideia.

Eu tentei ler / analisar a página terminfo, mas não fazia muito sentido para mim, exceto pelo fato de usar ncurses que o IIRC também usa um pouco de cor, embora eu não saiba se isso é relevante ou não.

Alguém pode ajudar a compartilhar bits equivalentes para definições .TERMINFO para cores em menos?

    
por shirish 17.01.2017 / 21:19

1 resposta

3

É idêntico: ncurses fornece uma interface termcap (que less usa), embora o banco de dados de terminais subjacente seja terminfo . Como quase todos os aplicativos termcap, less realmente não observa atentamente a sintaxe das strings retornadas, apenas preocupa-se com a possibilidade de solicitar md (o nome termcap corresponde ao terminfo) bold ).

less tem uma lista desses nomes de termcap que ele lê usando a função tgetstr (termcap ...) na inicialização e permite que você substitua esses valores por variáveis de ambiente nomeadas pelo nome termcap anexado a LESS_TERMCAP_ .

A propósito, todos os comandos tput em seu exemplo estão usando nomes terminfo . Eles são simplesmente usados para atribuir strings que less possa ler usando a interface termcap.

Leitura adicional:

por 17.01.2017 / 22:02