Rendi meno evidenzia i modelli di ricerca invece di metterli in corsivo


23

Per la mia comprensione, l'uomo usa lesscome cercapersone e, quando cerca parole chiave, lo usa less"evidenzia" le parole chiave in corsivo. Lo trovo davvero scomodo, quindi mi piacerebbe cambiarlo in qualcosa come vim's in set hlsearchcui il modello trovato ha uno sfondo diverso.

Ho tentato di eseguire man -P vim systemdma questo si è chiuso con lo stato di errore 1, quindi sembra che mi sia bloccato less.

Non è stato possibile trovare nulla che mi abbia man lessaiutato (invece ho scoperto che l'opzione -Gdisattiverà evidenziando tutti insieme che è anche peggio del corsivo).

Detto questo, qualcuno sa come ottenere l'evidenziazione della ricerca (cambia il colore di sfondo) nelle pagine man?

Cordiali saluti, eseguo Ubuntu 14.10

Mi sono imbattuto in questa domanda sembra porre la stessa cosa, ma non sono sicuro di seguire come funziona ( LESS_TERMCAP_so). La lesspagina man non menziona questo. (Ottengo risultati strani con questa soluzione)


Significa che inserisci quella linea nel tuo ~/.bashrcfile. export LESS_TERMCAP_so=$'\E[30;43m'Vedi anche questa risposta unix.stackexchange.com/questions/38634/…
iyrin

1
A volte uso man man | vim -per sfruttare la mia configurazione di vim, i tasti e le funzioni
JJoao

Hai trovato una soluzione a questo? Ho lo stesso identico problema su una macchina e non riesco a capire quale sia la differenza. La LESS_TERMCAP_sovariabile sopra fa sì che l'intero file si trasformi in sfondo arancione ...
user1338062

Temo di avere ancora problemi con questo
sgp667,

Risposte:


16

Trovato una risposta sul superutente: /superuser/566082/less-doesnt-highlight-search

Sembra che abbia a che fare con l'impostazione TERM. Ad esempio, meno l'evidenziazione agisce normalmente (evidenziazione dello sfondo bianco) quando ci si trova in una normale finestra di gnome-terminale, ma quando sono in tmux, si verifica il corsivo. La differenza per me è che TERM è impostato su "screen" quando in tmux, ma "xterm-256color" quando non lo è. Quando imposto "TERM = xterm-256color" nella finestra di tmux, l'evidenziazione in less ritorna all'evidenziazione dello sfondo.


Sono già riuscito a dimenticare questa domanda, ma questa è una notizia eccitante. Non appena avrò la mano sul computer lo proverò!
sgp667,

1
questa è una soluzione poco pratica, perché altre applicazioni dipendono dal fatto che TERM sia impostato su schermo * all'interno di tmux, come WeeChat. Se non impostato su screen * in tmux, WeeChat ha strani problemi di rendering.
Blaine Lafreniere,

Ho notato che ho avuto il problema con tmux <2.0 e non ho il problema da quando tmux v2.
artfulrobot

Grande scoperta. Ora ho set -g default-terminal "xterm-256color"nel mio ~ / .tmux.conf sulla mia scatola CentOS 7 (e altri).
mostra il

Controlla anche se screen-256coloresiste: prova ls /usr/share/terminfo/s/.
aDroid

8

La menzione di LESS_TERMCAP_soera incompleta. Questa è la variabile di ambiente speciale di less utilizzata per sovrascrivere la funzionalità termcap so(standout). Per utilizzare questa funzionalità, è necessario fornire anche una funzionalità se(standend).

La pagina di manuale terminfo (5) fornisce un riepilogo di queste funzionalità per i nomi terminfo (smso / rmso) e termcap (so / se):

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

La sua sezione sull'evidenziazione spiega:

Se il tuo terminale ha uno o più tipi di attributi di visualizzazione, questi possono essere rappresentati in diversi modi. È necessario scegliere un modulo di visualizzazione come modalità straordinaria , che rappresenti un formato buono, ad alto contrasto, di facile comprensione, per evidenziare i messaggi di errore e altri fattori di attenzione. (Se hai una scelta, inverti il ​​video più la metà luminosa è buona, oppure inverti il ​​solo video.) Le sequenze per entrare e uscire dalla modalità straordinaria sono indicate come smso e rmso, rispettivamente.

Se si desidera utilizzare il colore come elemento distintivo , è necessario fornire un corrispondente LESS_TERMCAP_seche reimposti il ​​colore. Questo è relativamente semplice da fare finché non si prevede di utilizzare i colori nella pagina del manuale per altri motivi (come l'utilizzo della funzione colore SGR di groff).

Supponendo il valore suggerito in un commento:

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

quindi è possibile ripristinarlo per la maggior parte dei terminali utilizzando

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

A proposito, la ragione del corsivo è che la descrizione del terminale per GNU screenusa la sequenza di escape standard per il corsivo come proprie capacità standout / standend. Alcuni di questi sono discussi nella voce del database del terminale .


Questa è stata la prima soluzione che ha funzionato per me (su tmux su un Mac). Aggiungo solo entrambe le righe di esportazione sopra nel mio file di configurazione di bash.
Marlun,

Tuttavia, se scrivo "esporta" per visualizzare tutte le mie variabili di ambiente, tutto ciò che viene evidenziato dopo che queste linee vengono evidenziate e il terminale continua ad essere evidenziato, quindi devo chiuderlo e avviarne uno nuovo.
Marlun,

In casi del genere, inserisco le variabili in uno script che chiama il programma che necessita di variabili particolari. Le variabili modificate si applicano solo all'interno dello script.
Thomas Dickey,

export | lessfunziona anche come soluzione alternativa
Marlun

4

Premi ESCuper disattivare l'evidenziazione della ricerca lessdopo una ricerca; una nuova ricerca la riattiverà di nuovo, quindi per disattivare definitivamente l'evidenziazione della ricerca per un hit di sessione -G.

In alternativa, inserisci il LESS='-G'tuo ambiente o eseguilo in questo manmodo:

LESS='-G' man less

Ironia della sorte, questo è tutto documentato nella lessmanpage ...

È inoltre possibile inserire quanto segue nell'ambiente, ad esempio nel proprio .bash_profile:

export MANPAGER='less -G'

come ho spiegato nella mia domanda non voglio cambiarlo completamente, voglio cambiare il modo in cui appare sul mio schermo. La mia domanda potrebbe essere stata fuorviante perché qualcuno l'ha modificata per me.
sgp667,

1

Per tmux ho impostato TERMsu tmux-256color . Tra le altre cose carine, questo ha il "solito" evidenziazione inversa in meno . Funziona bene quando si utilizza qualcosa di moderno come Fedora o Cygwin.

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

I pacchetti ncurses su Centos tuttavia non hanno le due definizioni tmux ( tmux e tmux-256color ). Li ho importati abbastanza facilmente dalla fedora. Una leggera ruga è che gli ncurses di Centos sono troppo vecchi per capire direttamente i file terminfo di fedora.

Sulla fedora:

$ infocmp tmux256-color >temp.txt

Su Centos:

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

Quindi all'interno di tmux :

$ TERM=tmux-256-color man tmux

Risultato!

Cordiali saluti, il comando tic inserisce la descrizione del terminale compilata nel database terminfo personale, ovvero ~/.terminfo/t/tmux-256color(in questo caso). Sentiti libero di spostarlo nel database globale se è quello che vuoi:

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.