Faça Menos destacar padrões de pesquisa em vez de colocá-los em itálico

23

Para meu entendimento, o homem usa lesscomo pager e, ao pesquisar por palavras less- chave , "destaca" as palavras-chave com itálico. Acho isso realmente inconveniente, então gostaria de mudar isso para algo como o vim, set hlsearchonde o padrão encontrado tem um fundo diferente.

Eu tentei executar, man -P vim systemdmas que saiu com o status de erro 1, então parece que estou preso less.

Não havia nada que eu pudesse encontrar man lessque ajudasse (em vez disso, descobri que a opção -Gdesativa o destaque de todos juntos, o que é ainda pior que o itálico).

Dito isto, alguém sabe como obter destaque de pesquisa (alterar a cor de fundo) nas páginas do manual?

Para sua informação, eu executo o Ubuntu 14.10

Me deparei com esta pergunta parece perguntar sobre a mesma coisa, mas não tenho certeza se sigo como isso funciona ( LESS_TERMCAP_so). A lesspágina do manual não menciona isso. (Eu recebo resultados estranhos com esta solução)

sgp667
fonte
Isso significa que você coloca essa linha no seu ~/.bashrcarquivo. export LESS_TERMCAP_so=$'\E[30;43m'Veja esta resposta também unix.stackexchange.com/questions/38634/…
iyrin 15/01/15
1
Às vezes eu usar man man | vim -para tirar proveito das minhas configuração vim, chaves e funções
JJoao
Você descobriu uma solução para isso? Eu tenho exatamente o mesmo problema em uma máquina e não consigo descobrir qual é a diferença. Acima LESS_TERMCAP_sovariável faz com que todo o arquivo para se transformar em fundo laranja ...
user1338062
Eu tenho medo eu ainda estou lutando com isso
sgp667

Respostas:

16

Encontrei uma resposta no superusuário: /superuser/566082/less-doesnt-highlight-search

Parece que tem a ver com a sua configuração de TERM. Por exemplo, menos destaque atua normalmente (destaque de fundo branco) quando está em uma janela normal do terminal gnome, mas quando estou no tmux, o itálico acontece. A diferença para mim é que TERM está sendo definido como "screen" quando estiver no tmux, mas "xterm-256color" quando não estiver. Quando defino "TERM = xterm-256color" na janela tmux, o realce em menos volta ao realce em segundo plano.

expurgar
fonte
Eu já consegui esquecer essa pergunta, mas esta é uma notícia emocionante. Assim que eu colocar minha mão no computador, testarei isso!
sgp667
1
essa é uma solução impraticável, porque outros aplicativos dependem do TERM ser configurado para a tela * quando no tmux, como o WeeChat. Quando não está definido como screen * no tmux, o WeeChat apresenta problemas estranhos de renderização.
Blaine Lafreniere
Notei que tive o problema com o tmux <2.0 e não tenho o problema desde o tmux v2.
Artfulrobot
Ótima descoberta. Agora eu tenho set -g default-terminal "xterm-256color"no meu ~ / .tmux.conf na minha caixa do CentOS 7 (e outras).
sshow 21/02
Verifique também se screen-256colorexiste: tente ls /usr/share/terminfo/s/.
aDroid
8

A menção de LESS_TERMCAP_sofoi incompleta. Essa é a variável de ambiente especial da less usada para substituir o sorecurso termcap (destaque). Para usar esse recurso, você também deve fornecer um serecurso (de suporte).

A página de manual terminfo (5) fornece um resumo desses recursos para os nomes terminfo (smso / rmso) e termcap (so / se):

   enter_standout_mode           smso       so        begin standout mode
   exit_standout_mode            rmso       se        exit standout mode  

Sua seção sobre o destaque explica:

Se o seu terminal tiver um ou mais tipos de atributos de exibição, eles podem ser representados de várias maneiras diferentes. Você deve escolher um formulário de exibição como modo de destaque , representando um formato bom, de alto contraste e fácil de olhar, para destacar mensagens de erro e outros chamadores de atenção. (Se você tiver uma escolha, o vídeo reverso mais a metade brilhante é bom ou o vídeo reverso sozinho.) As seqüências para entrar e sair do modo de destaque são fornecidas como smso e rmso, respectivamente.

Se você deseja usar cores como destaque , é necessário fornecer um correspondente LESS_TERMCAP_seque redefina a cor. Isso é relativamente simples, desde que você não espere usar cores na página de manual por outros motivos (como o recurso de cores SGR do groff).

Supondo o valor sugerido em um comentário:

export LESS_TERMCAP_so=$'\E[30;43m'

você pode redefinir isso para a maioria dos terminais usando

export LESS_TERMCAP_se=$'\E[39;49m'

A propósito, o motivo do itálico é que a descrição do terminal para o GNU screenusa a sequência de escape padrão do itálico como seus próprios recursos de destaque / suporte. Parte disso é discutida na entrada do banco de dados do terminal .

Thomas Dickey
fonte
Esta foi a primeira solução que realmente funcionou para mim (no tmux em um Mac). Acabei de adicionar as duas linhas de exportação acima no meu arquivo de configuração do bash.
Marlun #
No entanto, se eu escrever "export" para visualizar todas as minhas variáveis ​​de ambiente, tudo após essas linhas ficarem destacadas e o terminal continuar sendo destacado, então eu tenho que fechá-la e iniciar uma nova.
Marlun
Em casos como esse, coloquei as variáveis ​​em um script que chama o programa que precisa das variáveis ​​específicas. As variáveis ​​alteradas se aplicam somente ao script.
Thomas Dickey
export | lesstambém funciona como uma solução alternativa
Marlun 17/05
4

Pressione ESCupara desativar a pesquisa destacada lessapós uma pesquisa; uma nova pesquisa o ativará novamente, para desativar permanentemente o realce da pesquisa para um hit de sessão -G.

Alternativamente, coloque LESS='-G'seu ambiente ou execute mano seguinte:

LESS='-G' man less

Ironicamente, tudo isso está documentado na página de lessmanual ...

Você também pode colocar o seguinte no ambiente, por exemplo, no seu .bash_profile:

export MANPAGER='less -G'
Wurtel
fonte
Como expliquei na minha pergunta, não quero desativá-lo completamente, quero mudar a aparência dele na minha tela. Minha pergunta pode ter sido enganosa, porque alguém a editou para mim.
precisa saber é o seguinte
1

Para o tmux , defino TERMcomo tmux-256color . Entre outras coisas interessantes, esse destaque é o reverso "usual" em menos . Funciona bem quando se usa algo moderno como o fedora ou cygwin.

$ cat ~/.tmux.conf
⋮
set-option -g default-terminal tmux-256color

Os pacotes ncurses no Centos, no entanto, não possuem as duas definições de tmux ( tmux e tmux-256color ). Eu os importei facilmente do fedora. Uma pequena ruga é que o Centos ' ncurses é muito antigo para entender diretamente os arquivos terminfo do fedora.

No fedora:

$ infocmp tmux256-color >temp.txt

No Centos:

$ scp fedora-machine:temp.txt .
$ tic temp.txt

Então dentro do tmux :

$ TERM=tmux-256-color man tmux

Resultado!

Para sua informação, o comando tic coloca a descrição compilada do terminal no seu banco de dados terminfo pessoal, ou seja, ~/.terminfo/t/tmux-256color(neste caso). Sinta-se livre para mover isso para o banco de dados global, se é isso que você deseja:

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
bobbogo
fonte