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?

Cachinhos Dourados
fonte
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).

Gilles 'SO- parar de ser mau'
fonte
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.

Cachinhos Dourados
fonte
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.

bsd
fonte
Isso cria uma bagunça no meu terminal GUI (cheio de ESC[1mseqüências de tipos).
Goldilocks