schermata di cancellazione del comando 'less' all'uscita - come disattivarla?


79

Come forzare il lessprogramma a non cancellare lo schermo all'uscita?

Vorrei che si comportasse come git logcomando:

  • lascia la pagina vista di recente sullo schermo all'uscita
  • non esce lessanche se il contenuto si adatta a una schermata (provare git log -1)

Qualche idea? Non ho trovato lessopzioni adatte né variabili env in un manuale, ma sospetto che sia impostato tramite alcune variabili env.


Presumibilmente hai bisogno dell'aspetto scorrevole di less, quindi morenon sarebbe adatto?
Svend,

Risposte:


95

Per evitare lessdi cancellare lo schermo all'uscita, utilizzare -X.

Dalla manpage:

-X o --no-init

Disabilita l'invio delle stringhe di inizializzazione e deinizializzazione di termcap al terminale. Questo è talvolta desiderabile se la stringa di deinizializzazione fa qualcosa di non necessario, come cancellare lo schermo.

Per quanto riguarda l'uscita meno se il contenuto si adatta a una schermata, questa è l'opzione -F:

-F o --quit-if-one-screen

Fa sì che less esca automaticamente se l'intero file può essere visualizzato sulla prima schermata.

-Fnon è l'impostazione predefinita, quindi è probabilmente preimpostato da qualche parte per te. Controlla la var LESS. Env


Eccellente! -X è quello che avevo in mente.
Wojciech Kaczmarek,

7
Ciò è particolarmente fastidioso se lo conosci -Fma non lo è -X, poiché lo spostamento su un sistema che reimposta lo schermo su init renderà semplicemente i file brevi non visualizzati, senza una ragione apparente. Questo mi ha colpito ackquando ho provato a portare le mie ACK_PAGER='less -RF'impostazioni sul Mac. Grazie mille!
markpasc,

@markpasc: grazie per averlo sottolineato. Non avrei capito che questa combinazione avrebbe causato questo effetto, ma ora è ovvio.
sleske,

7
Ciò è particolarmente utile per il cercapersone man, in modo che le pagine man non scompaiano non appena si esce meno con il tasto 'q'. Cioè, scorri fino alla posizione in una pagina man che ti interessa solo per farla sparire quando esci dal cercapersone meno per usare le informazioni. Quindi, ho aggiunto: export MANPAGER='less -s -X -F'al mio .bashrc per mantenere le informazioni della pagina man sullo schermo quando esco di meno, in modo da poterle effettivamente utilizzare invece di doverle memorizzare.
Michael Goldshteyn,

2
Fa schifo che devi decidere quando iniziare lesscome deve comportarsi quando uscirai.
Michael Burr,

17

Se si desidera che una delle opzioni della riga di comando sia sempre predefinita, è possibile aggiungere al proprio .profile o .bashrc la variabile di ambiente LESS. Per esempio:

export LESS="-XF"

applicherà sempre -X -F ogni volta che viene eseguito meno da quella sessione di accesso.

A volte i comandi sono alias (anche di default in alcune distribuzioni). Per verificare ciò, digitare

alias

senza argomenti per vedere se è stato aliasato con opzioni che non vuoi. Per eseguire il comando effettivo nel tuo $ PATH invece che in un alias, basta prefigurarlo con una barra rovesciata:

\less

Per vedere se una variabile di ambiente LESS è impostata nel tuo ambiente e influisce sul comportamento:

echo $LESS

2
In effetti, aggiungo in export LESS="-XFR"modo che anche i colori siano visibili less.
dotancohen,

2
Grazie per quello! -XFda solo stava interrompendo l'output di git diff, e -XFRottiene il meglio da entrambi i mondi - nessuna cancellazione dello schermo, ma git diffoutput a colori .
Giles Thomas,

1

O semplicemente impostalo nella tua configurazione globale di git:

git config --global core.pager 'less -FX'

In questo modo altri strumenti non sono interessati (cosa che mi piace).

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.