Posso forzare `man` a eseguire la corrispondenza sensibile minuscola?


10

Quando cerco pagine man, la ricerca fa distinzione tra maiuscole e minuscole, ma solo rispetto alle lettere maiuscole. Ad esempio, xcorrisponderà xe Xmentre Xsolo corrisponderà x. Questa è la man-dbversione di man, usata di default sui sistemi derivati ​​fedora e disponibile su altri. man mandice che il cercapersone predefinito è less -s. $LESSnon è definito nell'ambiente, il mio $PAGERè giusto lesse non ho alias per meno.

Questo non è il comportamento quando invoco lessda solo.

Esiste un modo per forzare le lettere minuscole xaffinché corrispondano solo alle lettere minuscole xquando si utilizza man?


1
L'impostazione predefinita è la distinzione tra maiuscole e minuscole. Ciò che hai descritto sembra che la tua LESSvariabile di ambiente contenga -i.
arte

1
Quale versione di lesshai? Hai un alias impostato per less? Sono impostati gli indirizzi LESS o LESSOPEN? Per impostazione predefinita, una lessricerca di xsole corrispondenze x, nonX
bsd

Non avevamo già questo Q? Penso che Hauke ​​l'abbia chiesto, lo cercherò .... (slm ritorna prima dei 5 minuti. Scade sul commento ...) Questo, non un duplex ma sembra quello che stai chiedendo, no? unix.stackexchange.com/questions/116395/…
slm

@slm, anche questa è stata la mia prima reazione, ma poiché il proprietario della domanda ha partecipato a quella domanda, suppongo che lo sappia.
arte

@manatwork echo $LESS= nothing. Nota: non distingue tra maiuscole e minuscole, ma applica solo la maiuscola della sensibilità WRT. @bdowning alias | grep less= nothing. Ho appena notato che si applica solo tramite man(è mandb, btw)., Tuttavia. Sono sicuro di averlo letto prima da qualche parte ...
Riccioli d'oro,

Risposte:


3

L'uomo chiama meno; l'unico controllo a livello di uomo è scegliere quali opzioni chiamare meno.

La distinzione tra maiuscole e minuscole di ricerca di Less è controllata da due opzioni.

  • Se -Iè attivo, le ricerche non fanno distinzione tra maiuscole e minuscole: o ao Apossono essere usate per abbinare sia ae A.
  • Se -iè attivo ma non -I, le ricerche non fanno distinzione tra maiuscole e minuscole, ma solo se il modello non contiene lettere maiuscole.

Se si -Iimposta un'opzione predefinita per Meno, tutte le ricerche non fanno distinzione tra maiuscole e minuscole anche nelle pagine man.

Man-db passa ulteriori opzioni al cercapersone tramite la LESSvariabile d'ambiente, che Less interpreta allo stesso modo delle opzioni della riga di comando. L'impostazione è hardcoded al momento della compilazione e inizia con -i. (Il valore è "-ix8RmPm%s$PM%s$"Man-db 2.6.2; la P…$parte è la stringa del prompt.)

Se non vuoi che le ricerche nelle pagine man facciano distinzione tra maiuscole e minuscole, o se vuoi che siano sempre sensibili al maiuscolo / minuscolo, non c'è modo di configurarlo in man-db stesso. È possibile creare un alias per mano uno script wrapper che manipoli la LESSvariabile di ambiente, poiché Man-db antepone il suo contenuto al valore corrente se presente:

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

Per disattivare l' -iopzione e rendere le ricerche sempre sensibili al maiuscolo / minuscolo per impostazione predefinita nelle pagine man:

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

È inoltre possibile codificare un valore diverso LESSimpostando la MANLESSvariabile di ambiente, ma se lo si fa, quindi si manimposta semplicemente LESSil valore di MANLESS, si perde la riga del titolo personalizzata ("Pagina del manuale foo(42)") e altre chicche (in particolare, fare assicurati di includere -Rper la formattazione grassetto e sottolineata).


1

Questo è il modo less's -i(riga di comando) 'caso insensitive' opere mode (cioè, è ancora sensibile per maiuscole). Come sottolinea Gilles, l'utilizzo di questo è compilato in man-db.

Oltre ai modi indicati in Gilles rispondere a WRT impostando un alias +-io un'abitudine MANLESS, è possibile attivare la corrispondenza tra maiuscole e minuscole una volta aperta la pagina man -i(che attiva e disattiva l'interruttore); vedrai un piccolo messaggio "Il caso è significativo nelle ricerche" e ora xsolo corrispondenze xe Xsolo corrispondenze X.

Man-db's manha un -Iinterruttore, ma questo vale per la ricerca della pagina man - ad esempio, di default man BASHti darà la pagina di manuale di bash, mentre man -I BASHno.


0

"Esiste un modo per forzare le lettere minuscole xaffinché corrispondano solo alle lettere minuscole xquando si utilizza man?"

Ecco un modo

man -Tascii manpage |less

Non conosco i dettagli gory, ma l' roffelaborazione sta eseguendo il markup e il cercapersone sembra corrispondere al testo non marcato, anche se sta visualizzando il testo marcato.
Molto confuso, si spera che un nroffguru possa spiegare la pipeline.


Questo crea un disastro nel mio terminale GUI (pieno di ESC[1msequenze di tipi).
Riccioli d'oro
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.