Resposta curta
-
Sim você pode colocar a variável
LESS_TERMCAP_me
no arquivolesskey
, mas isso requer correção do código fonte e construção da sua própria versãoless
(explico abaixo). / p> -
Não o arquivo
lesskey
não pode conter comandos externos comotput
para se tornar independente do terminal. No entanto, você pode usar vários arquivoslesskey
conforme recomendado pela resposta de Thomas Dickey .
lesskey
file
O comando lesskey
é usado para converter um conteúdo de texto legível por humanos em um arquivo de configuração binária para o comando less
. Este arquivo de configuração é denominado lesskey
file e geralmente é o arquivo ~/.less
.
Esses arquivos contêm três seções:
-
Comando (por exemplo,
:q quit
) -
Edição de linha (por exemplo,
^G abort
) -
less
variáveis de ambiente (por exemplo,LESS_TERMCAP_me = 3(B3[m
)
Coloque as variáveis LESS_TERMCAP_*
no arquivo lesskey
$ cat > lesskey.txt << EOF
#env
LESS = -iSrsM +Gg
LESS_TERMCAP_md = $(tput bold; tput setaf 6)
LESS_TERMCAP_me = $(tput sgr0)
LESS_TERMCAP_so = $(tput bold; tput setaf 3; tput setab 4)
LESS_TERMCAP_se = $(tput rmso; tput sgr0)
LESS_TERMCAP_us = $(tput smul; tput bold; tput setaf 7)
LESS_TERMCAP_ue = $(tput rmul; tput sgr0)
LESS_TERMCAP_mr = $(tput rev)
LESS_TERMCAP_mh = $(tput dim)
EOF
$ lesskey lesskey.txt # By default lesskey writes ~/.less
$ man bash # By default man uses less (pager)
Bug
O comando less
lê a configuração ~/.less
tarde demais:
logo após procurar por variáveis LESS_TERMCAP_*
.
Esse bug afeta a versão 487 lançada em 29 de março de 2017 (e certamente versões anteriores).
Acabei de enviar um relatório de bug e a correção correspondente para os mantenedores. Eu atualizarei esta resposta quando a correção for aplicada para o próximo less
release ...
Conserte você mesmo
-
Faça o download do arquivo de código-fonte de:
-
Inversa duas linhas no arquivo
main.c
na linha 113
Antes:/* * Process command line arguments and LESS environment arguments. * Command line arguments override environment arguments. */ is_tty = isatty(1); get_term(); init_cmds(); init_charset(); init_line();
Depois:
/* * Process command line arguments and LESS environment arguments. * Command line arguments override environment arguments. */ is_tty = isatty(1); init_cmds(); /* Load lesskey file before */ get_term(); /* getting variables LESS_TERMCAP_* */ init_charset(); init_line();
-
Instalar as dependências necessárias para a compilação
./configure
Se
./configure
falhar, identifique as dependências ausentes.
No meu caso, instaleincurses-devel
para obter o cabeçalhoterm.h
. -
Construir
make
-
Mantenha seu próprio
less
em algum lugar, por exemplo, em um diretório pessoal~/bin
mkdir -p ~/bin cp ./less ~/bin PATH="$PATH:~/bin"
Não se esqueça de definir a variável de ambiente
PATH
no seu~/.profile
ou, se preferir, outro arquivo como~/.bashrc
,~/.login
...
Dicas extras
-
Veja o
TERMCAPS
usado em uma página de manualLESS_TERMCAP_DEBUG=1 man bash
-
Recupere a página do manual com
TERMCAPS
encodingMANPAGER='tee man.txt' man bash
-
Combine essas duas dicas
MANPAGER='tee man.txt' man bash LESS_TERMCAP_DEBUG=1 less man.txt