Puis-je forcer `man` à faire une correspondance sensible aux minuscules?

10

Lorsque je recherche des pages de manuel, la recherche est sensible à la casse, mais uniquement en ce qui concerne les lettres majuscules. Par exemple, xcorrespondra xet Xalors que Xseulement correspond x. Il s'agit de la man-dbversion de man, utilisée par défaut sur les systèmes dérivés de fedora et disponible sur d'autres. man mandit que le téléavertisseur par défaut est less -s. $LESSn'est pas défini dans l'environnement, mon $PAGERest juste less, et je n'ai pas d'alias pour moins.

Ce n'est pas le comportement lorsque j'invoque lessseul.

Existe-t-il de toute façon de forcer les minuscules xà ne correspondre qu'aux minuscules xlors de l'utilisation man?

boucle d'or
la source
1
La valeur par défaut est une stricte respect de la casse. Ce que vous avez décrit ressemble à votre LESSvariable d'environnement -i.
manatwork
1
De quelle version lessdisposez-vous? Avez-vous un alias défini pour less? Les variables d'environnement LESS ou LESSOPEN sont-elles définies? Par défaut, une lessrecherche de xcorrespondances uniquement x, pasX
bsd
N'avions-nous pas déjà ce Q? Je pense que Hauke ​​l'a demandé, je vais le chercher .... (slm revient avant l'expiration des 5 minutes sur le commentaire ...) Celui-ci, pas un dup mais ressemble à ce que vous demandez, non? unix.stackexchange.com/questions/116395/…
slm
@slm, c'était aussi ma première réaction, mais comme le propriétaire de la question a participé à cette question, je suppose qu'il est au courant.
manatwork
@manatwork echo $LESS= rien. Notez qu'il n'est pas insensible à la casse - mais il applique uniquement la sensibilité WRT majuscule. @bdowning alias | grep less= rien. Je viens de remarquer que cela ne s'applique que via man(c'est mandb, btw)., Cependant. Je suis sûr que j'ai déjà lu quelque chose à ce sujet quelque part ...
goldilocks

Réponses:

3

L'homme appelle moins; le seul contrôle au niveau de l'homme consiste à choisir les options avec lesquelles appeler Less.

La sensibilité à la casse de recherche de Less est contrôlée par deux options.

  • Si -Iest en vigueur, les recherches ne respectent pas la casse: soit aou Apeut être utilisé pour faire correspondre les deux aet A.
  • Si -iest en vigueur mais pas -I, les recherches ne respectent pas la casse, mais uniquement si le modèle ne contient pas de lettre majuscule.

Si vous définissez -Iune option par défaut pour Less, toutes les recherches seront insensibles à la casse, même dans les pages de manuel.

Man-db transmet des options supplémentaires au pager via la LESSvariable d'environnement, que Less interprète de la même manière que les options de ligne de commande. Le paramètre est codé en dur au moment de la compilation et commence par -i. (La valeur est "-ix8RmPm%s$PM%s$"celle de Man-db 2.6.2; la P…$partie est la chaîne d'invite.)

Si vous ne voulez pas que les recherches dans les pages de manuel soient sensibles à la casse, ou si vous voulez qu'elles soient toujours insensibles à la casse, il n'y a aucun moyen de configurer cela dans man-db lui-même. Vous pouvez créer un alias pour manou un script wrapper qui manipule la LESSvariable d'environnement, car Man-db ajoute son contenu à la valeur actuelle si elle est présente:

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

Pour désactiver l' -ioption et ainsi rendre les recherches toujours sensibles à la casse par défaut dans les pages de manuel:

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

Vous pouvez également coder en dur une valeur différente pour LESSen définissant la MANLESSvariable d'environnement, mais si vous le faites, puis mandéfinissez simplement LESSla valeur de MANLESS, vous perdez la ligne de titre personnalisée («page de manuel foo(42)») et d'autres goodies (en particulier, faites assurez-vous d'inclure -Rpour la mise en forme en gras et souligné).

Gilles 'SO- arrête d'être méchant'
la source
1

C'est ainsi que fonctionne lessle mode -i(commutateur de ligne de commande) «insensible à la casse» (c'est-à-dire qu'il est toujours sensible aux majuscules). Comme le souligne Gilles, son utilisation est compilée dans man-db.

En plus des moyens indiqués dans Gilles répondre WRT en définissant un alias +-iou une coutume MANLESS, vous pouvez basculer la correspondance stricte de casse une fois la page de manuel ouverte -i(qui active et désactive l'interrupteur); vous verrez un peu « cas est importante dans les recherches » message et maintenant xque les correspondances xet les Xmatches uniquement X.

Man-db mana un -Icommutateur, mais cela s'applique à la recherche de la page de manuel - par exemple, par défaut man BASHvous donnera la page de manuel bash, alors que man -I BASHnon.

boucle d'or
la source
0

"Est-il possible de forcer les minuscules xà ne correspondre qu'aux minuscules xlors de l'utilisation man?"

Voici une façon

man -Tascii manpage |less

Je ne connais pas les détails sanglants, mais le rofftraitement effectue un balisage et le pager semble correspondre au texte non balisé, même s'il affiche le texte balisé.
Très confus, j'espère qu'un nroffgourou pourra expliquer le pipeline.

bsd
la source
Cela crée un gâchis dans mon terminal GUI (plein de ESC[1mséquences de types).
goldilocks