Posso forçar o `man` a fazer uma correspondência sensível a letras minúsculas?


10

Quando pesquiso nas páginas de manual, a pesquisa diferencia maiúsculas de minúsculas, mas apenas em letras maiúsculas. Por exemplo, xcorresponderá xe Xenquanto Xapenas corresponde x. Esta é a man-dbversão do man, usada nos sistemas derivados do fedora por padrão e disponível em outros. man mandiz que o pager padrão é less -s. $LESSnão está definido no ambiente, meu $PAGERé justo lesse não tenho pseudônimos por menos.

Esse não é o comportamento quando invoco lesspor conta própria.

Existe alguma maneira de forçar letras minúsculas xpara corresponder apenas letras minúsculas xao usar man?


1
O padrão é estrita distinção entre maiúsculas e minúsculas. O que você descreveu parece que sua LESSvariável de ambiente contém -i.
— precisa saber é o seguinte

1
Qual versão lessvocê tem? Você tem um alias definido less? Os envios LESS ou LESSOPEN estão definidos? Por padrão, uma lesspesquisa xapenas partidas x, nãoX
— BSD

Já não tínhamos esse Q? Acho que Hauke ​​pediu, vou procurar .... (slm volta antes dos 5 minutos. Expira no comentário ...) Esse aqui, não um idiota, mas parece o que você está perguntando, não? unix.stackexchange.com/questions/116395/…
— slm

@ slm, essa foi minha primeira reação também, mas como o proprietário da pergunta participou dessa pergunta, acho que ele sabe disso.
— manatwork

@manatwork echo $LESS= nada. Observe que isso não faz distinção entre maiúsculas e minúsculas - mas apenas reforça a sensibilidade em maiúsculas do WRT. @downdown alias | grep less= nada. Só notei que só se aplica via man(é mandb, btw)., No entanto. Eu estou certo que eu li sobre isso antes em algum lugar ...
— Goldilocks

Respostas:


3

O homem está chamando menos; o único controle no nível intermediário é escolher com quais opções chamar Menos.

A sensibilidade de maiúsculas e minúsculas da pesquisa é controlada por duas opções.

  • Se -Iestiver em vigor, as pesquisas não diferenciam maiúsculas de minúsculas: podem aou Apodem ser usadas para combinar ambos ae A.
  • Se -iestiver em vigor, mas não -I, as pesquisas não diferenciam maiúsculas de minúsculas, mas apenas se o padrão não contiver letras maiúsculas.

Se você -Ioptar por Menos, todas as pesquisas não diferenciam maiúsculas de minúsculas, mesmo nas páginas do manual.

O Man-db passa opções extras para o pager através da LESSvariável de ambiente, que Less interpreta da mesma maneira que as opções da linha de comando. A configuração é codificada no momento da compilação e começa com -i. (O valor é "-ix8RmPm%s$PM%s$"de Man-db 2.6.2; a P…$parte é a sequência de prompt.)

Se você não deseja que as pesquisas nas páginas do manual façam distinção entre maiúsculas e minúsculas, ou se você sempre faz distinção entre maiúsculas e minúsculas, não há como configurar isso no próprio man-db. Você pode criar um alias para manou um script de wrapper que manipule a LESSvariável de ambiente, pois o Man-db anexa seu conteúdo ao valor atual, se presente:

alias man='LESS="$LESS -I" man'

Para desativar a -iopção e, assim, fazer pesquisas sempre diferenciam maiúsculas de minúsculas por padrão nas páginas do manual:

alias man='LESS="$LESS -+i" man'

Você também pode codificar um valor diferente LESSdefinindo a MANLESSvariável de ambiente, mas, se fizer isso, manapenas definirá LESSo valor de MANLESS, perderá a linha de título personalizada ("Página do manual foo(42)") e outras vantagens (em particular, faça inclua -Ra formatação em negrito e sublinhado).


1

É assim que lesso modo -i(opção de linha de comando) "insensível a maiúsculas" funciona (ou seja, ainda é sensível a maiúsculas). Como Gilles aponta, usar isso é compilado no man-db.

Além das maneiras indicadas na resposta do Gilles WRT definindo um alias +-iou um costume MANLESS, você pode alternar a correspondência estrita de maiúsculas e minúsculas assim que a página de manual abrir -i(que liga e desliga); você verá uma pequena mensagem "O caso é significativo nas pesquisas" e agora xapenas corresponde xe Xapenas corresponde X.

O man-db's manpossui uma -Iopção, mas isso se aplica à pesquisa da página de manual - por exemplo, por padrão man BASH, você fornece a página de manual do bash, enquanto man -I BASHque não.


0

"Existe uma maneira de forçar letras minúsculas xpara corresponder apenas letras minúsculas xao usar man?"

Aqui está uma maneira

man -Tascii manpage |less

Não conheço os detalhes sangrentos, mas o roffprocessamento está realizando a marcação e o pager parece corresponder ao texto não marcado, mesmo que esteja exibindo o texto marcado.
Muito confuso, espero que um nroffguru possa explicar o pipeline.


Isso cria uma bagunça no meu terminal GUI (cheio de ESC[1mseqüências de tipos).
— Goldilocks
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.