Faites moins ressortir les modèles de recherche au lieu de les mettre en italique

23

À ma connaissance, l'homme utilise lesscomme pager, et lors de la recherche de mots clés, lessil "met en évidence" les mots clés en italique. Je trouve cela vraiment gênant, donc je voudrais changer cela en quelque chose comme vim set hlsearchoù le motif trouvé a un arrière-plan différent.

J'ai tenté de m'exécuter man -P vim systemdmais j'ai quitté avec le statut d'erreur 1, il semble donc que je sois coincé avec less.

Il n'y avait rien que j'ai pu trouver dans man lessqui a aidé (à la place, j'ai découvert que cette option -Gdésactivera la mise en surbrillance tous ensemble, ce qui est encore pire que l'italique).

Cela étant dit, quelqu'un sait-il comment mettre en évidence la recherche (changer la couleur d'arrière-plan) dans les pages de manuel?

Pour info je lance Ubuntu 14.10

Je suis tombé sur cette question semble poser la même chose, mais je ne suis pas sûr de suivre comment cela fonctionne ( LESS_TERMCAP_so). La lesspage de manuel ne le mentionne pas. (J'obtiens des résultats étranges avec cette solution)

sgp667
la source
Cela signifie que vous placez cette ligne dans votre ~/.bashrcfichier. export LESS_TERMCAP_so=$'\E[30;43m'Voir aussi cette réponse unix.stackexchange.com/questions/38634/…
iyrin
1
Parfois, j'utilise man man | vim -pour profiter de ma configuration vim, de mes touches et de mes fonctions
JJoao
Avez-vous trouvé une solution à cela? J'ai exactement le même problème sur une machine et je ne peux pas comprendre quelle est la différence. La LESS_TERMCAP_sovariable ci- dessus fait que le fichier entier se transforme en arrière-plan orange ...
user1338062
J'ai bien peur de toujours avoir du mal avec ça
sgp667

Réponses:

16

Trouvé une réponse sur le superutilisateur: /superuser/566082/less-doesnt-highlight-search

On dirait que cela a à voir avec votre paramètre TERM. Par exemple, moins de surbrillance agit normalement (sur fond blanc) dans une fenêtre gnome-terminal normale, mais lorsque je suis dans tmux, l'italique se produit. La différence pour moi est que TERM est défini sur "écran" lorsqu'il est dans tmux, mais sur "xterm-256color" lorsqu'il ne l'est pas. Lorsque je mets "TERM = xterm-256color" dans la fenêtre tmux, la surbrillance en moins revient à la surbrillance en arrière-plan.

purger
la source
J'ai déjà réussi à oublier cette question mais c'est une bonne nouvelle. Dès que je mettrai la main sur l'ordinateur, je testerai ça!
sgp667
1
il s'agit d'une solution peu pratique, car d'autres applications dépendent du fait que TERM est défini sur screen * lorsqu'ils sont dans tmux, comme WeeChat. Lorsqu'il n'est pas défini sur screen * dans tmux, WeeChat a des problèmes de rendu étranges.
Blaine Lafreniere
J'ai remarqué que j'avais le problème avec tmux <2.0 et je n'ai plus de problème depuis tmux v2.
artfulrobot
Grande découverte. J'ai maintenant set -g default-terminal "xterm-256color"dans mon ~ / .tmux.conf sur ma box CentOS 7 (et autres).
sshow
Vérifiez également s'il screen-256colorexiste: essayez ls /usr/share/terminfo/s/.
aDroid
8

La mention de LESS_TERMCAP_soétait incomplète. Il s'agit de la variable d'environnement spéciale de less utilisée pour remplacer la capacité termcap so(standout). Pour utiliser cette capacité, vous devez également fournir une secapacité (standend).

La page de manuel terminfo (5) donne un résumé de ces fonctionnalités pour les noms terminfo (smso / rmso) et termcap (so / se):

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

Sa section sur la mise en évidence explique:

Si votre terminal possède un ou plusieurs types d'attributs d'affichage, ceux-ci peuvent être représentés de différentes manières. Vous devez choisir un formulaire d'affichage comme mode hors concours , représentant un bon contraste élevé, facile à regarder, un format pour mettre en évidence les messages d'erreur et autres éléments d'attention. (Si vous avez le choix, la vidéo inversée plus semi-lumineuse est bonne, ou la vidéo inversée seule.) Les séquences pour entrer et sortir du mode standout sont données comme smso et rmso, respectivement.

Si vous souhaitez utiliser la couleur pour vous démarquer , vous devez fournir un correspondant LESS_TERMCAP_sequi réinitialise la couleur. C'est relativement simple à faire tant que vous ne vous attendez pas à utiliser des couleurs dans la page de manuel pour d'autres raisons (comme l'utilisation de la fonction de couleur SGR de groff).

En supposant la valeur suggérée dans un commentaire:

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

alors vous pouvez réinitialiser cela pour la plupart des terminaux en utilisant

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

Soit dit en passant, la raison de l' italique est que la description du terminal pour GNU screenutilise la séquence d'échappement standard pour l'italique comme ses propres capacités de standout / standend. Une partie de cela est discutée dans l' entrée de la base de données du terminal .

Thomas Dickey
la source
C'était la première solution qui fonctionnait réellement pour moi (dans tmux sur un Mac). J'ajoute simplement les deux lignes d'exportation ci-dessus dans mon fichier de configuration bash.
Marlun
Cependant, si j'écris «exporter» pour afficher toutes mes variables d'environnement, tout après que ces lignes soient mises en surbrillance et que le terminal continue d'être mis en surbrillance, je dois donc le fermer et en démarrer une nouvelle.
Marlun
Dans des cas comme celui-ci, je mets les variables dans un script qui appelle le programme qui a besoin des variables particulières. Les variables modifiées s'appliquent uniquement dans le script.
Thomas Dickey
export | lessfonctionne également comme solution de contournement
Marlun
4

Appuyez sur ESCupour désactiver la mise en évidence de la recherche lessaprès une recherche; une nouvelle recherche la réactivera, afin de désactiver définitivement la mise en surbrillance de la recherche pour un hit de session -G.

Mettez alternativement LESS='-G'dans votre environnement, ou exécutez mancomme ceci:

LESS='-G' man less

Ironiquement, tout cela est documenté dans la lesspage de manuel ...

Vous pouvez également mettre les éléments suivants dans l'environnement, par exemple dans votre .bash_profile:

export MANPAGER='less -G'
Wurtel
la source
comme je l'ai expliqué dans ma question, je ne veux pas le désactiver complètement, je veux changer la façon dont il apparaît sur mon écran. Ma question a peut-être induit en erreur parce que quelqu'un l'a éditée pour moi.
sgp667
1

Pour tmux I réglé TERMà tmux-256color . Entre autres choses intéressantes, cela a la surbrillance inverse "habituelle" en moins . Fonctionne bien lorsque vous utilisez quelque chose de moderne comme fedora ou cygwin.

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

Les packages ncurses sur Centos n'ont cependant pas les deux définitions tmux ( tmux et tmux-256color ). Je les ai importés assez facilement de fedora. Une légère ride est que les ncurses de Centos sont trop vieux pour comprendre directement les fichiers terminfo de fedora.

Sur fedora:

$ infocmp tmux256-color >temp.txt

Sur Centos:

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

Puis à l'intérieur de tmux :

$ TERM=tmux-256-color man tmux

Résultat!

Pour info la commande tic place la description compilée du terminal dans votre base de données terminfo personnelle, c'est-à-dire ~/.terminfo/t/tmux-256color(dans ce cas). N'hésitez pas à déplacer ceci vers la base de données globale si c'est ce que vous voulez:

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