Resposta curta
-
Sim você pode colocar a variável
LESS_TERMCAP_meno 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
lesskeynão pode conter comandos externos comotputpara se tornar independente do terminal. No entanto, você pode usar vários arquivoslesskeyconforme 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) -
lessvariá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.cna 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
./configureSe
./configurefalhar, identifique as dependências ausentes.
No meu caso, instaleincurses-develpara obter o cabeçalhoterm.h. -
Construir
make -
Mantenha seu próprio
lessem algum lugar, por exemplo, em um diretório pessoal~/binmkdir -p ~/bin cp ./less ~/bin PATH="$PATH:~/bin"Não se esqueça de definir a variável de ambiente
PATHno seu~/.profileou, se preferir, outro arquivo como~/.bashrc,~/.login...
Dicas extras
-
Veja o
TERMCAPSusado em uma página de manualLESS_TERMCAP_DEBUG=1 man bash -
Recupere a página do manual com
TERMCAPSencodingMANPAGER='tee man.txt' man bash -
Combine essas duas dicas
MANPAGER='tee man.txt' man bash LESS_TERMCAP_DEBUG=1 less man.txt