Esse é um comportamento normal. Essas variáveis de ambiente contêm seqüências de escape que fazem com que o terminal altere sua cor de primeiro plano. Você obtém o mesmo efeito visual quando qualquer programa os envia, seja less
ou env
.
Essas variáveis precisam conter os caracteres de escape reais, menos não faz nenhum pós-processamento nelas.
Normalmente, você pode colocar menos variáveis de configuração no seu arquivo menoschave , mas isso não funciona para o LESS_TERMCAP_xx
variables, porque less as lê antes de ler o arquivo lesskey (a partir de menos 444). Então você não tem escolha a não ser colocá-los no ambiente.
Se você quiser que essas variáveis se apliquem somente a man
e não a outros usos de less
, você pode usar um alias para man
que define a variável PAGER
como um script wrapper que define as variáveis de ambiente .
#!/bin/sh
escape=␛ # a literal escape character
export LESS_TERMCAP_md=$escape'[01;34m'
…
exec less "$@"
(Como alternativa, use #!/bin/bash
na primeira linha e você pode usar a sintaxe #'\e'
para obter um caractere de escape. Em sistemas onde /bin/sh
é traço, usar /bin/sh
é um pouco mais rápido, embora possa não ser perceptível na prática.)
Chame este script less-color
e adicione alias man='PAGER=less-color man'
ao seu ~/.bashrc
ou ~/.zshrc
. Em alguns sistemas, em vez de criar um alias, você pode informar a man
para usar um pager diferente definindo a variável de ambiente MANPAGER
: export MANPAGER=less-color
em seu ~/.profile
.