LESS(1)

NOME
less - l'opposto di more

SINTASSI
less -?
less -V
less [-[+]aBcCdeEfgGiImMnNqQrsSuUVwX]
[-b bufs] [-h righe] [-j riga] [-k keyfile]
[-{oO} logfile] [-p modello] [-P prompt] [-t tag]
[-T tagsfile] [-x tab] [-y righe] [-[z] righe]
[+[+]cmd] [nomefile]...

DESCRIZIONE
Less è un programma simile a more (1), ma che permette di muoversi sia in avanti che indietro all'interno del file. Inoltre, less non ha bisogno di leggere l'intero file prima di avviarsi, quindi con i file molto larghi si avvia più velocemente di editor di testi come vi (1). Less usa termcap (o terminfo su alcuni sistemi), cosicché ne è possibile l'utilizzo su molti tipi di terminali. C'è anche un limitato supporto per i terminali di hardcopy (su un terminale di hardcopy, le righe che dovrebbero essere stampate in cima allo schermo sono prefissate da un caret «^»).

I comandi sono basati sia su more che su vi. Essi possono essere preceduti da un numero decimale, chiamato N nelle descrizioni riportate in seguito. Il numero è usato da alcuni comandi, come indicato.

COMANDI
Nelle seguenti descrizioni, ^X significa control-X. ESC sta per il tasto ESCAPE; per esempio ESC-v indentifica la sequenza di due caratteri "ESCAPE" e "v".

h o H
    Aiuto: visualizza un riepilogo di questi comandi. Se vi dimenticate facilmente tutti gli altri comandi, ricordatevi almeno questo.

SPAZIO o ^V o f o ^F
    Si sposta in avanti di N righe, di default una finestra (guardate l'opzione -z più avanti). Se N è più grande della dimensione dello schermo, solo l'ultima schermata è visualizzata. Attenzione: alcuni sistemi usano il carattere ^V come carattere speciale.

z   Come SPAZIO, ma se N è specificato, esso diventa la nuova dimensione della finestra.

INVIO o ^N o e o ^E o j o ^J
    Si sposta in avanti di N righe, una di default. Tutte le N righe sono visualizzate, anche se N è maggiore della dimensione dello schermo.

d o ^D
    Si sposta in avanti di N righe, mezza schermata di default. Se N è specificato, diventa il nuovo valore di default per i comandi d ed u seguenti.

b o ^B o ESC-v
    Si sposta in avanti di N righe, una finestra di default (guardate l'opzione -z più avanti). Se N è più grande della dimensione dello schermo, solo l'ultima schermata è visualizzata.

w   Come ESC-v, ma se N è specificato esso diventa la nuova dimensione della finestra.

y o ^Y o ^P o k o ^K
    Si sposta indietro di N righe, una di default. Tutte le N righe vengono visualizzate, anche se N è maggiore della dimensione dello schermo. Attenzione: su alcuni sistemi ^Y è un carattere speciale di controllo.

u o ^U
    Si sposta indietro di N righe, di default della metà della grandezza dello schermo. Se N è specificato, esso diventa il nuovo valore di default per i comandi d ed u seguenti.

r o ^R o ^L
    Ridisegna lo schermo.

R   Ridisegna lo schermo, cancellando ogni input dal buffer. È utile se il file sta cambiando mentre è visualizzato.

F   Si sposta in avanti e continua a leggere anche quando raggiunge la fine del file. Normalmente questo comando si usa quando si è già alla fine del file. È un modo per controllare la coda di un file che cresce mentre è visualizzato (il comportamento è simile a quello del comando "tail -f").

g o < o ESC-<
    Si sposta alla riga N nel file, la prima di default (inizio del file). Attenzione: questo comando è lento se il file è di grandi dimensioni.

G o > o ESC->
    Si sposta alla riga N nel file, l'ultima di default (fine del file). Attenzione: questo comando può risultare lento se N è grande, o se N non viene specificato e si sta leggendo lo standard input (STDIN) anziché un file.

p o %
    Si sposta ad una posizione N percento (N%) nel file. N deve essere compreso tra 0 e 100. Questo comando funzione anche se si sta leggendo lo standard input (STDIN), ma solo se less l'ha già letto fino alla fine. È sempre veloce, ma non sempre utile.

{   Se una parentesi sinistra a graffa appare nella prima riga dello schermo, il comando { andrà alla corrispondente parentesi destra a graffa. Quest'ultima sarà collocata nell'ultima riga dello schermo. Se c'è più di una parentesi sinistra a graffa sulla prima riga dello schermo, un numero N può esser usato per specificare l'N-esima parentesi della riga.

}   Se una parentesi destra a graffa appare nell'ultima riga dello schermo, il comando } andrà alla corrispondente parentesi sinistra a graffa. Quest'ultima sarà collocata nella prima riga dello schermo. Se c'è più di una parentesi destra a graffa nell'ultima riga dello schermo, un numero N può essere usato per specificare l'N-esima parenti della riga.

(   Come {, ma vale per le parentesi tonde anziché per quelle graffe.

)   Come }, ma vale per le parentesi tonde anziché per quelle graffe.

[   Come {, ma vale per le parentesi quadre anziché per quelle graffe.

]   Come }, ma vale per le parentesi quadre anziché per quelle graffe.

ESC-^F
    Seguito da due caratteri, funziona come {, ma usa i due caratteri rispettivamente come parentesi di apertura e di chiusura. Per esempio, "ESC ^F < >" può essere usato per cercare il carattere > corrispondente al carattere < presente nella prima riga dello schermo.

ESC-^B
    Seguito da due caratteri, funziona come }, ma usa i due caratteri rispettivamente come parentesi di apertura e di chiusura. Per esempio, "ESC ^B < >" può essere usato per tornare indietro nel testo al carattere < corrispondente al carattere > presente nell'ultima riga dello schermo.

m   Seguito da qualsiasi lettera minuscola, segna con quella lettera la posizione corrente.

'   (apice). Seguito da una qualsiasi lettera minuscola, torna alla posizione precedentemente segnata con quella lettera. Seguito da un altro apice, torna alla posizione in cui è stato eseguito l'ultimo comando di movimento "ampio". Seguito da un ^ o da un $, salta rispettivamente all'inizio o alla fine del file. I segni sono conservati quando viene esamitato un nuovo file, quindi il comando ' può essere usato per passare da un file all'altro.

^X^X
    Come l'apice.

/modello
    Ricerca (in avanti nel documento) l'N-esima riga contentente il modello. Di default N è 1. Il modello è un'espressione regolare, come quelle riconosciute da ed. La ricerca inizia dalla seconda riga visualizzata (per cambiare questo guardate le opzioni -a e -j).

    Alcuni caratteri sono speciali (hanno una funzione particolare) se inseriti all'inizio del modello; essi modificano infatti il tipo di ricerca anziché divenire parte del modello :

    !   Cerca le righe che NON soddisfano il modello.

    *   Ricerca in più file. Se la ricerca raggiunge la fine del file corrente senza alcun riscontro positivo, essa continua nel file successivo specificato nella riga di comando.

    @   Inizia la ricerca dalla prima riga del primo file della riga di comando, indipendentemente da quale file è visualizzato attualmente e da come sono impostate le opzioni -a e -j.

?modello
    Ricerca (indietro nel documento) l'N-esima riga contentente il modello. Di default N è 1. Il modello è un'espressione regolare, come quelle riconosciute da ed. La ricerca inizia dalla riga immediatamente precedente alla prima visualizzata.

    Alcuni caratteri sono speciali, come nel comando / :

    !   Cerca le righe che NON soddisfano il modello.

    *   Ricerca in più file. Se la ricerca raggiunge l'inizio del file corrente senza alcun riscontro positivo, essa continua nel file precedente specificato nella riga di comando.

    @   Inizia la ricerca dall'ultima riga dell'ultimo file della riga di comando, indipendentemente da quale file è visualizzato attualmente e da come sono impostate le opzioni -a e -j.

ESC-/modello
    Come "/*".

ESC-?modello
    Come "?*".

n   Ripete la precedente ricerca, per l'N-esima riga contenente l'ultimo modello. Se la ricerca precedente era stata modificata da un !, la ricerca viene fatta per l'N-esima riga che NON contiene il modello. Se la ricerca precedente era stata modificata da un *, la ricerca continua nei file successivi (o precedenti) se non viene soddisfatta nel file corrente. Non c'è alcun effetto se la ricerca precedente era stata modificata da @.

N   Ripete la ricerca precedente, ma nella direzione opposta.

ESC-n
    Ripete la ricerca precedente, sovrapponendo gli estremi dei file. L'effetto è uguale a quello della ricerca modificata col comando *.

ESC-N
    Ripete la ricerca precedente, ma nella direzione opposta e sovrapponendo gli estremi dei file.

ESC-u
    Annulla l'evidenziazione della ricerca. Disattiva l'evidenziazione delle stringhe corrispondenti al modello di ricerca corrente. Se l'evidenziazione è già disattivata per effetto di un precedente comando ESC-u, essa viene riattivata. Inoltre, ogni comando di ricerca riattiva l'evidenziazione (l'evidenziazione può anche essere disattivata tramite il flag -G; in tal caso i comandi di ricerca non la riattivano).

:e [nomefile]
    Esamina un nuovo file. Se non viene specificato alcun nome di file, il file "corrente" (guardate i comandi :d e :p più avanti) della lista specificata nella riga di comando viene riesaminato. Un segno di percentuale (%) nel nome del file è sostituito dal nome del file corrente. Un cancelletto (#) è sostituito dal nome del file esaminato precedentemente. Il nome del file è inserito nella lista file della riga di comando, quindi sarà visibile ai successivi comandi :n e :p. Se il nome del file è formato da più nomi di file, essi vengono tutti inseriti nella lista e viene esaminato il primo.

^X^V o E
    Come :e. Attenzione: su alcuni sistemi ^V è un carattere speciale.

:n  Esamina il file successivo della lista fornita sulla riga di comando. Se un numero N è specificato, l'N-esimo file viene esaminato.

:p  Esamina il file precedente della lista fornita sulla riga di comando. Se N è specificato, l'N-esimo file precedente viene esaminato.

:x  Esamina il primo file della lista fornita sulla command kube, Se un numero N è specificato, l'N-esimo file della lista viene esaminato.

= o ^G o :f
    Stampa a video alcune informazioni sul file corrente, compreso il nome, il numero di riga e l'offset dell'ultima riga. Se possibile, visualizza anche la lunghezza del file e la percentuale (misurata sull'ultima riga dello schermo).

-   Posto sulla linea di comando e seguito da una delle opzioni descritte più avanti, cambia il valore di quell'opzione e visualizza un messaggio che descrive il nuovo valore. Se la lettera che contraddistingue l'opzione ha anche un valore numerico (come -b o -h) o di stringa stringa (come -P o -t), un nuovo valore può essere immesso dopo la lettera - opzione. Se non viene immesso alcun nuovo valore viene visualizzato un messsaggio che descrive le impostazioni correnti.

-+  Seguito da una delle lettere-opzioni descritte più avanti,la reimposta al suo valore predefinito e visualizza un messaggio di descrizione della nuova impostazione (il comando "-+X" ha lo stesso effetto di "-+X" sulla linea di comando). Questo comando non ha effetto per le opzioni con valore di stringa.

--  Seguito da una delle lettere - opzioni descritte più avanti, l'imposta all'opposto del valore di default e visualizza un messaggio di descrizione della nuova impostazione (il comando "--X" ha lo stesso effetto di "--X" sulla linea di comando). Questo comando non ha effetto per le opzioni con valore numerico o di stringa.

_   (underscore). Seguito da una delle lettere - opzioni (vedi oltre), visualizza un messaggio che descrive l'imopstazione corrente di quell'opzione.

+cmd
    Fa sì che il comando (cmd) specificato venga eseguito ogni volta che un nuovo file è esaminato. Per esempio, +G farà si che less visualizzi ciascun file a partire dalla fine anziché dall'inizio.

V   Stampa il numero di versione di less.

q o :q o :Q o ZZ
    Esce da less.

I tre comandi che seguono possono funzionare o meno, a seconda della vostra configurazione di sistema.

v   Avvia un editor per modificare il file attualmente visualizzato. Il nome dell'editor è preso dalla variabile d'ambiente VISUAL, o da EDITOR se VISUAL non è definita. Se nessuna delle due è definita, less cercherà di avviare vi. Leggete a questo proposito la discussione su LESSEDIT nella sezione PROMPT di questo documento.

! comando
    Avvia una shell su cui far girare il comando dato. Un segno di percentuale (%) nel comando è sostituito dal nome del file corrente. Un cancelletto (#) è sostituito dal nome del file esaminato precedentemente. "!!" ripete l'ultimo comando eseguito nella shell. "!" senza alcun comando avvia una shell. In tutti i casi, la shell è presa dalla variabile d'ambiente SHELL. Se questa non è definita, verrà avviata sh.

| <m> comando
    <m> rappresenta qualsiasi lettera-segno (che contraddistingue cioè una sezione selezionata). Questo comando invia questa sezione via pipe al comando specificato. La sezione del file da inviare è tra la prima riga dello schermo e la posizione marcata dalla lettera. <m> può anche essere ^ o $ per indicare rispettivamente l'inizio o la fine. Se <m> è . o newline, la schermata corrente viene inviata.

OPZIONI
Le opzioni della linea di comando sono descritte in questa sezione. La maggior parte di esse può essere modificata mentre less è in esecuzione, tramite il comando "-".

Le opzioni possono anche essere lette dalla variabile d'ambiente "LESS". Per esempio, per evitare di scrivere "less -opzioni ..." ogni volta che lanciate less, potete dire a csh:

setenv LESS "-opzioni"

oppure se usate sh:

LESS="-opzioni"; export LESS

La variabile d'ambiente viene processata prima della linea di comando, quindi le opzioni di quest'ultima hanno la precedenza su quelli della variabile d'ambiente LESS. Se un'opzione appare nella variabile LESS, può essere riportata al suo valore di default tramite la command line: è sufficiente precedere l'opzione con "-+".

Un dollaro ($) può essere usato per segnalare la fine di un'opzione con valore di stringa. Questo è importante solo per opzioni come -P, che sono seguite da una stringa.

-?  Quest'opzione visualizza un riepilogo dei comandi accettati da less (come il comando h). Se quest'opzione è specificata, tutte le altre vengono ignorate e less esce dopo aver visualizzato la schermata di aiuto (a seconda di come la vostra shell interpreta il punto di domanda, può essere necessario includerlo tra doppi apici: "-\?").

-a  Fa sì che la ricerca parta dalla riga successiva all'ultima visualizzata sullo schermo, saltando quindi tutte le righe visualizzate. Di default la ricerca inizia dalla seconda riga dello schermo (oppure dall'ultima trovata; guardate l'opzione -j).

-bn Specifica il numero di buffer che less userà per ciascun file. I buffer sono di 1K, e di default ne vengono utilizzati 10 per ciascun file (a meno che il file non sia una pipe; guardate l'opzione -B a questo propostito). Il numero n specifica un diverso numero di buffer da usare.

-B  Di default, quando i dati vengono letti da una pipe, i buffer vengono allocati automaticamente in base alle necessità. Se viene letta una grande quantità di dati dalla pipe, verrà allocata una grande quantità di memoria. L'opzione -B disabilita l'allocazione automatica dei buffer, cosicché venga usato un numero di buffer pari a quello specificato tramite l'opzione -b. Attenzione: l'uso di -B può portare ad una visualizzazione errata, dato che solo la parte del file vista più recentemente viene è tenuta in memoria; ogni dato precedente viene perso.

-c  Fa sì che lo schermo, quando ridisegnato, venga dipinto dalla prima riga in giù. Di default, i ridisegni sono fatti dalla parte bassa dello schermo.

-C  Uguale a -c, ma lo schermo viene pulito prima di essere ridisegnato.

-d  L'opzione -d sopprime il messaggio di errore che viene normalmente visualizzato se il terminale è "muto" (cioè se manca di importanti funzioni quali la capacità di pulire lo schermo o di spostarsi in avanti. L'opzione -d non cambia il comportamento di less su un terminale muto).

-Dxcolore
    [Solo MS-Dos] Imposta il colore del testo visualizzato. x è un singolo carattere che seleziona il tipo di di cui si vuole impostare il colore: n=normale, s=evidenziato, b=grassetto, u=sottolineato, k=lampeggiante. color è una coppia di colori separata da un punto. Il primo numero seleziona il colore del testo (foreground) ed il secondo quello dello sfondo (background). Un singono numero N corrisponde a N.0.

-e  Fa sì che less esca automaticamente la seconda volta che raggiunge la fine del file. Di default, il solo modo per uscire da less è il comando q.

-E  Fa sì che less esca automaticamente la prima volta che raggiunge la fine del file.

-f  Forza l'apertura dei file non regolari (un file non regolare è una directory o un dispositivo). Inoltre sopprime l'avviso quando viene aperto un file binario. Di default, less rifiuta di aprire file non regolari.

-g  Normalmente, less evidenzia TUTTE le stringhe che hanno soddisfatto l'ultimo comando di ricerca. Il flag -g cambia questo comportamento e viene evidenziata solo la particolare stringa trovata dall'ultimo comando di ricerca. Questo può causare un aumento di velocità di less.

-G  Il parametro (flag) -G sopprime l'evidenziazione di tutte le stringhe trovate dai comandi di ricerca.

-hn Specifica un numero massimo di righe di cui spostarsi all'indietro. Se è necessario spostari di più di n righe, lo schermo viene invece ridisegnato in avanti (se il terminale non permette di muoversi indietro, -h0 è considerato il valore fisso).

-i  Fa sì che le ricerche ingnorino il case (maiuscolo e minuscolo sono cioè considerati identici). Quest'opzione è ignorata se nel modello di ricerca appare almeno una lettera maiuscola.

-I  Come -i, ma le ricerche ignorano il case anche se il modello contiene lettere maiuscole.

-jn Specifica una riga sullo schermo dove la riga "bersaglio" deve essere posizionata. Una riga bersaglio è l'oggetto di una ricerca, del salto ad un numero di riga, del salto ad una "percentuale" del file o del salto ad una posizione segnata. La riga sullo schermo è contraddistinta da un numero: la riga più in alto è la 1, la successiva è la 2 e così via. Il numero può essere negativo per indicare una riga relativamente al fondo dello schermo: l'ultima riga dello schermo è -1, la penultima -2, e così via. Se l'opzione -j è usata, la ricerca inizia dalla riga immediatamente successiva alla riga bersaglio. Se ad esempio si usa "-j4", la riga bersaglio è la quarta dello schermo, quindi la ricerca inizia dalla quinta.

-knomefile
    Fa sì che less apra ed interpreti il file specificato come un file lesskey (1). Può essere specificata più di un'opzione -k. Se un file chiamato .less esiste nella home directory (~), anche questo è usato come file di tipo lesskey.

-m  Fa sì che less usi la sola posizione percentuale come prompt (come more). Di default, less usa i due punti (:) come prompt.

-M  Fa sì che less usi come prompt il nome del file, la riga corrente e la posizione percentuale.

-n  Sopprime i numeri di riga. Il default (cioè usare i numeri di riga) può provocare un rallentamento nell'esecuzione di less soprattutto con file molto lunghi. Il flag -n evita questi problemi. Usare i numeri di riga significa che il numero di riga viene visualizzato nel prompt e nel comando = e che il comando v passerà all'editor il numero della riga corrente (leggete a questo proposito anche la discussione su LESSEDIT nella sezione PROMPT).

-N  Fa sì che un numero di riga venga visualizzato all'inizio di ogni riga sullo schermo.

-onomefile
    Fa sì che less copi il suo input nel file specificato man mano che l'input viene visualizzato. Questo comando funziona solo se l'input è una pipe, non un file ordinario. Se il file già esiste, less chiederà di confermarne la sovrascrittura.

-Ofilename
    L'opzione -O è come l'opzione -o, ma sovrascrive i file esistenti senza chiedere alcuna conferma.

    Se non è stato impostato alcun file di log, le opzioni -o e -O possono essere utilizzate, quando less è in esecuzione, per specificarne uno. Se non viene indicato alcun nome di file, queste due opzioni visualizzano il nome del file di log. Il comando "s" è l'equivalente dell'opzione -o quando less è in esecuzione.

-pmodello
    L'opzione -p nella command line è l'equivalente del comando +/modello: quando less si avvia, inizia la visualizzazione alla prima occorrenza di modello nel file.

-Pprompt
    Permette di personalizzare i tre stili di prompt secondo le proprie preferenze. Quest'opzione viene di solito inserita nella variabile d'ambiente LESS, anziché venire specificata ad ogni chiamata a less. Quest'opzione deve essere l'ultima della variabile LESS oppure deve terminare con un dollaro ($). -P seguita da una stringa cambia il prompt di default (quello corto) impostandolo alla stringa specificata. -Pm cambia il prompt medio (-m), -PM quello lungo (-M). Inoltre, -P= cambia il messaggio visualizzato dal comando =. Tutte le stringhe immesse devono essere formate da lettere e da speciali sequenze di caratteri escape. Leggete la sezione PROMPT per maggiori dettagli.

-q  Imposta una modalità di operazione moderatamente "silenziosa": il segnale acustico del terminale non viene utilizzato se si tenta di muoversi prima dell'inizio od oltre la fine del file. Se il terminale prevede un "segnale ottico", esso viene usato al posto di quello acustico. Il segnale acustico viene comunque utilizzato in caso di altri errori, come l'immissione di un carattere non valido. Di default il segnale acustico è utilizzato in tutti questi casi.

-Q  Imposta una modalità di operazionetotalmente "silenziosa": il segnale acustico non viene mai usato.

-r  Fa sì che i caratteri di controllo "grezzi" vengano visualizzati. Di default i caratteri di controllo sono visualizzati con la notazione dei caret (^); ad esempio, un control-A (001 ottale) viene visualizzato come "^A". Attenzione: quando il flag -r è utilizzato, less non può più gestire l'apparenza del documento sullo schermo (dato che questa dipende da come ciascuno schermo risponde ai caratteri di controllo). Possono quindi verificarsi vari problemi di visualizzazione, come righe lunghe che vengono spezzate nei posti sbagliati.

-s  Fa sì che più righe vuote consecutive vengano ridotte ad una sola. Questo è utile quando si visualizza l'output di nroff.

-S  Fa sì che le righe più lunghe della larghezza dello schermo siano troncate anziché divise. Ciò significa che la parte eccedente della riga non viene visualizzata. Di default le righe vengono divise: la parte eccedente viene visualizzata nella riga successiva.

-ttag
    L'opzione -p, seguita da un TAG, permetterà di modificare il file contenente tale tag. Perché ciò sia possibile deve tuttavia essere presente nella directory corrente un file chiamata "tags", creato precedentemente con il comando ctags (1). Questa opzione può anche essere specificata da dentro less (usando il comando -) come metodo per esaminare un nuovo file. Il comando ":t", quando less è avviato, equivale a specificare -t sulla linea di comando.

-Ttagsfile
    Specifica un tag file al posto di "tags".

-u  Fa sì che i backspace (cancellazione) ed i carriage return (invio) vengano considerati caratteri stampabili; essi vengono quindi inviati al terminale quando appaiono in input.

-U  Fa sì che i backspace (cancellazione) ed i carriage return (invio) siano trattati come caratteri di controllo; essi vengono quindi trattati come specificato tramite l'opzione -r.

    Di default, se non è specificata alcuna opzione -u o -U, i backspace vicini agli underscore (_) sono trattati in maniera speciale: il testo è visualizzato sottolineato, utilizzando la possibilità hardware del terminale di sottolineare. Inoltre, anche i backspace compresi tra due caratteri uguali sono trattati in maniera speciale: il testo è visualizzato in grassetto, utilizzando la possibilità hardware del terminale di visualizzare in grassetto. Gli altri backspace vengono cancellati, assieme al carattere che li precede. I carriage return seguiti da un newline sono cancellati. Gli altri carriage return sono trattati come specificato dall'opzione -r. Si possono compiere ricerche sul testo sottolineato o in grassetto se non sono attive né -u né -U.

-V  Visualizza il numero di versione di less.

-w  Fa sì che vengano usate righe vuote per rappresentare le righe oltre la fine del file. Di default, viene utilizzata una tilde (~).

-xn Imposta la lunghezza del tab a n caratteri. Il valore di default è 8.

-X  Disabilita l'invio al terminale delle stringhe di inizializzazione e deinizializzazione di termcap. Questo può essere utile se la stringa di deinizializzazione fa qualcosa di inutile, come pulire lo schermo.

-yn Specifica un numero massimo di righe di cui spostarsi in avanti. Se è necessario spostarsi di più di n righe, lo schermo viene ridisegnato. Le opzione -c e -C possono essere utilizzati per ridisegnare lo schermo dall'alto, se desiderato. Di default, ogni movimento in avanti causa scrolling.

-[z]n
    Cambia la dimensione di default della finestra di scrolling a n righe. Il valore di default è una schermata. Anche i comandi z e w possono essere usati per cambiare la dimensione della finestra. La "z" può essere omessa per compatibilità con more. Se il numero n è negativo, esso indica n righe in meno rispetto alla dimensione corrente dello schermo. Ad esempio, se lo schermo è di 24 righe, -z-4 imposta la finestra di scrolling a 20 righe. Se lo schermo è ridimensionato a 40 righe, la finestra di scrolling viene automaticamente cambiata a 36 righe.

+   Se un'opzione della linea di comando inizia con +, la parte rimanente di tale opzione è considerata un comando iniziale per less. Ad esempio, +G dice a less di iniziare la visualizzazione alla fine del file anziché all'inizio, e +/xyz gli indica di iniziare alla prima occorrenza di "xyz" nel file. Costituisce caso a parte +<numero>, che viene considerato come +<numero>g; ciò significa che la visualizzazione inizia al numero di riga specificato (comunque, guardate il caveat sotto il comando "g" più in su). Se l'opzione inizia con ++, il comando iniziale è applicato ad ogni file che verrà visualizzato, non solo al primo. Il comando + descritto precedentemente può anche essere usato per impostare (o modificare) un comando inizia per tutti i file.

EDITING DI RIGA
Quando si immettono i comandi nella riga in fondo allo schermo (ad esempio il nome del file per un comando :e, o il modello per un comando di ricerca), alcuni tasti possono essere usati per manipolare la linea di comando. La maggior parte dei comandi ha una forma alternativa, indicata tra [ parentesi quadre ], che possono essere usate se un tasto non esiste su una particolare tastiera (la forma indicata tra le parentesi quadre non funziona nella versione per MS-DOS). Ognuno di questi tasti speciali può essere immesso con valore letterale precedendolo con il carattere "letterale", sia ^V che ^A. Anche un backslash ( può essere immesso con valore letterale immettendone due (\).

FRECCIASINISTRA [ ESC-h ]
    Sposta il cursore di uno spazio a sinistra.

FRECCIADESTRA [ ESC-l ]
    Sposta il cursore di uno spazio a destra.

^FRECCIASINISTRA [ ESC-b o ESC-FRECCIASINISTRA ]
    (cioé CONTROL e FRECCIASINISTRA simultaneamente). Sposta il cursore di una parola a sinistra.

^FRECCIADESTRA [ ESC-w o ESC-FRECCIADESTRA ]
    (cioé CONTROL e FRECCIADESTRA simultaneamente). Sposta il cursore di una parola a destra.

HOME [ ESC-0 ]
    Sposta il cursore all'inizio della riga.

END [ ESC-$ ]
    Sposta il cursore alla fine della riga.

BACKSPACE
    Cancella il carattere sulla sinistra del cursore, o cancella il comando se la linea di comando è vuota.

CANCELLA (DELETE) [ ESC-x ]
    Cancella il carattere sotto il cursore.

^BACKSPACE [ ESC-BACKSPACE ]
    (cioé CONTROL e BACKSPACE simultaneamente). Cancella la parola sulla sinistra del cursore.

^CANCELLA (^DELETE) [ ESC-X o ESC-CANCELLA ]
    (cioé CONTROL e CANCELLA simultaneamente). Cancella la parola sotto il cursore.

FRECCIASU [ ESC-k ]
    Ripesca la linea di comando precedente.

FRECCIAGIU' [ ESC-j ]
    Ripesca la linea di comando successiva.

TAB Completa il nome di file parziale sulla sinistra del cursore. Se più di un nome di file può completare il nome parziale, il primo trovato viene inserito nella linea di comando. TAB a ripetizione scorreranno tra gli altri nomi di file.

BACKTAB [ ESC-TAB ]
    Come TAB, ma scorre nella direzione opposta tra i nomi dei file.

^L  Completa il nome fi file parziale sulla sinistra del cursore. Se più di un nome di file può completare il nome parziale, tutti i nomi di file vengono inseriti nella linea di comando (se ci stanno).

^U (Unix) r ESC (MS-DOS)
    Cancella l'intera linea di comando, o annulla il comando se la linea di comando è vuota. Se avete cambiato il vostro carattere di line-kill (cancellazione della riga) sotto Unix a qualcosa di diverso da ^U, dovrete usare quello anziché ^U.

KEY BINDING
In less, potete definire i vostri comandi personlizzati usando il programma lesskey (1) per creare nella vostra home directory (~) un file chiamato ".less". Questo file specifica una serie di tasti e le azioni associate a ciascuno di questi tasti. Potete anche usare lesskey per cambiare i tasti per l'editing della linea di comando (leggete la sezione EDITING DI RIGA). Per maggiori dettagli consultate la man page di lesskey.

PREPROCESSORE DELL'INPUT
Potete definire un "preprocessore dell'input" ("input preprocessor") per less. Prima che less apra un file, esso offre al vostro preprocessore la possibilità di modificarne l'aspetto finale. Un preprocessore dell'input è un semplice programma (o script) che scrive i contenuti del file d'origine in un altro file, chiamato file sostitutivo (replacement file). I contenuti del file sostitutivo sono poi visualizzati al posto di quelli del file originario. Il tutto sarà trasparente all'utente, e sembrerà che ad essere letto sia il file originario; less infatti visualizzerà come nome del file corrente il nome del file originario.

Un preprocessore dell'input riceve un solo argomento nella riga di comando: il nome del file originario, così come è immesso dall'utente. Il programma dovrà creare il file sostitutivo e, a lavoro finito, stamparne il nome sull'output standard (STDOUT). Se il preprocessore non stampa alcun nome di file, less usa il file originario. Il preprocessore non viene chiamato in causa quando si sta visualizzando l'input standard (STDIN). Per impostare un preprocessore dell'input, assegnate alla variabile d'ambiente LESSOPEN la linea di comando che chiama il vostro programma. Questa linea di comando dovrà includere un'occorrenza della stringa "%s", che verrà sostituita dal nome del file al momento dell'esecuzione del preprocessore.

Quando less chiude un file aperto tramite preprocessore, chiama un altro programma, detto "postprocessore dell'input" ("input postprocessor"), che può compiere qualsiasi operazione di pulizia desiderata (come ad esempio la cancellazione del file sostitutivo creato da LESSOPEN). Questo programma riceve due argomenti sulla linea di comando: il nome del file originario (così come è stato immesso dall'utente), ed il nome del file sostitutivo. Per impostare un postprocessore dell'input, assegnate alla variabiel d'ambiente LESSCLOSE la linea di comando che chiama il vostro programma. Potere includere in questa linea di comando due occorrenze della stringa "%s"; la prima sarà sostituita dal nome del file originario e la seconda dal nome del file sostitutivo.

Per esempio su molti sistemi Unix questi due script vi permetteranno di tenere i file in forma compressa, e di poterli ancora visualizzare con less

lessopen.sh:
    #! /bin/sh
    case "$1" in
    *.Z)    uncompress -c $1  >/tmp/less.$$  2>/dev/null
        if [ -s /tmp/less.$$ ]; then
            echo /tmp/less.$$
        else
            rm -f /tmp/less.$$
        fi
        ;;
    esac

lessclose.sh:
    #! /bin/sh
    rm $2

Per usare questi script, metteteli entrambi dove possono essere eseguiti e impostate LESSOPEN="lessopen.sh %s", e LESSCLOSE="lessclose.sh %s %s". Script più complessi possono essere scritti per accettare altri tipi di file compressi, e così via.

È anche possibile impostare un preprocessore dell'input in modo che invii direttamente i dati a less (tramite pipe), anziché salvarli in un file sostitutivo. Questo evita di dover scompattare tutto il file prima di iniziarne la visualizzazione. Un preprocessore dell'input che lavora in questo modo è chiamato "input pipe". Una input pipe, anziché scrivere il nome del file sostitutivo sul suo output standard (STDOUT), ve ne scrive tutto il contenuto. Se l'input pipe non scrive alcun carattere all'output standard, allora non c'è alcun file sostitutivo e less usa il file originario. Per usare una input pipe, immettete come primo carattere della variabile LESSOPEN una barra verticale (|), che indica che il preprocessore dell'input è una input pipe.

Per esempio su molti sistemi Unix, i seguenti script hanno lo stesso funzionamento di quelli visti in precedenza:

lesspipe.sh:
    !# /bin/sh
    case "$1" in
    *.Z)    uncompress -c $1  2>/dev/null
        ;;
    esac

Per usare questo script, mettetelo dove può essere eseguito ed impostate LESSOPEN="|lesspipe.sh %s". Quando un'input pipe è usata, si può comunque usare un postprocessore LESSCLOSE, ma non è necessario dal momento che non c'è alcun file sostitutivo da cancellare. In questo caso, il nome del file sostitutivo passato a LESSCLOSE è "-".

INSIEME DI CARATTERI NAZIONALIZZATI
Ci sono tre tipi di caratteri nel file di input:

caratteri normali
    possono essere visualizzati direttiamente.

caratteri di controllo
    non devono essere visualizzati direttamente, ma si trovano in genere nei file di testo (ad esempio il tab ed il backspace).

caratteri binari
    non devono essere visualizzati direttamente e non dovrebbero trovarsi nei file di testo.

Un "insieme di caratteri" è semplicemente una descrizione di quali caratteri devono essere considerati normali, di controllo, e binari. La variabile d'ambiende LESSCHARSET può essere usata per selezionare un insieme di caratteri. I possibili valori per questa variabile sono: Possible values for LESSCHARSET are:

ascii
    L'insieme di caratteri predefinito. BS (backspace), TAB, NL (newline), CR (carriage return), e formfeed sono caratteri di controllo, tutti i caratteri tra 127 e 255 sono binari, tutti gli altri sono normali.

latin1
    Seleziona l'insieme di caratteri ISO 8859/1. latin-1 è la stessa cosa di ASCII, solo che i caratteri tra 161 e 255 sono considerati caratteri normali.

dos Seleziona un insieme di caratteri adatto per MS-DOS.

koi8-r
    Seleziona un insieme di caratteri russo.

next
    Seleziona un insieme di caratteri adatto ai computer NeXT.

In alcuni casi, può essere necessario forzare less ad usare un insieme di caratteri diverso da quelli definibili tramite LESSCHARSET. In questo caso, la variabile d'ambiende LESSCHARDEF può essere usata per definire un insieme di caratteri. Essa dovrebbe essere impostata con una stringa in cui ciascun carattere rappresenta un carattere dell'insieme. Il carattere "." è utilizzato per un carattere normale, "c" per un carattere di controllo, "b" per un carattere binario. Un numero decimale può essere usato per la ripetizione. Ad esempio, "bccc4b" signigica che il carattere 0 è binario, 1, 2 e 3 sono di controllo, 4, 5, 6 e 7 sono binari, e 8 e normale. Tutti i caratteri dopo l'ultimo sono considerati dello stesso tipo dell'ultimo: in questo caso i caratteri dal 9 al 255 sarebbero considerati normali (questo è un esempio, e non rappresenta necessariamente alcun insieme di caratteri reale).

Questa tabella mostra il valore di LESSCHARDEF equivalente a ciascuno dei possibile balore per LESSCHARSET.

    ascii     8bcccbcc18b95.b
    latin1    8bcccbcc18b95.33b.
    dos       8bcccbcc12bc5b95.b.
    koi8-r    8bcccbcc18b95.b128.
    next      8bcccbcc18b95.bb125.bb

Se né LESSCHARSET né LESSCHARDEF sono definite, ma il vostro sistema supporta l'interfaccia setlocale, less userà setlocale per determinare l'insieme di caratteri. Setlocale è controllata impostando le variabili d'ambiente LANG o LC_CTYPE.

I caratteri di controllo e binari sono visualizzati inversamente (cioè con i colori del testo e dello sfondo scambiati). Ognuno di questi caratteri è visualizzato, se possibile, tramite la notazione dei caret (^) (es. ^A per control-A). La notazione dei caret è usata solo se l'inversione del bit 0100 risulta in un carattere visualizzabile. Altrimenti, il carattere è visualizzato come un numero esadecimale in parentesi triangolari ("<" e ">"). Questo formato può essere cambiato impostando la variabile d'ambiente LESSBINFMT. LESSBINFMT può iniziare con un "*" ed un carattere per selezionare l'attributo di visualizzazione: "*k" è lampeggiante, "*d" è grassetto, "*u" è sottolineato, "*s" è evidenziato (invertito). Se LESSBINFMT non inizia con un "*", l'attributo è ritenuto normale. La parte restante di LESSBINFMT è una stringa che può includere una sequenza di escape in stile printf (un segno % seguito da x, X, o, d, ecc.). Per esempio, se LESSBINFMT è "*u[%x]", i caratteri binari sono visualizzati sottolineati e circondati da parentesi, in notazione esadedecimale. Il valore di default, se LESSBINFM non è specificato, è "*d<%X>".

PROMPT
L'opzione -P permette di impostare il prompt secondo le proprie preferenze. La stringa data all'opzione -P sostituisce la stringa specificata del prompt. Alcuni caratteri nella stringa sono interpretati in maniera speciale. Il meccanismo del prompt è alquanto complicato allo scopo di fornire la massima flessibilità, ma l'utente normale non ha bisogno di capire tutti i dettagli sulla costruzione dei prompt personalizzati.

Un segno di percentuale (%) seguito da un singolo carattere viene espanso a seconda di qual è il carattere successivo:

%bX È sostituito dall'offset in byte (cioè dalla posizione) all'interno del file corrente. La b e ` seguita da un singolo carattere (visualizzato sopra come X, che specifica la riga di cui si deve usare l'offset in byte. Se il carattere è una "t", l'offset in byte della prima riga dello schermo è utilizzato, una "m" indica di usare la riga in mezzo, una "b" indica di usare la riga in fondo, una "B" indica di usare la riga immediatamente successiva alla riga in fondo, e una "j" indica di usare la riga "bersaglio", come specificato dall'opzione -j.

%B  È sostituito dalla dimensione del file corrente.

%E  È sostituito dal nome dell'editor (preso dalla varabile d'ambiente VISUAL o, se questa non è definita, da EDITOR). Leggete a questo proposito la discussione su LESSEDIT, più avanti.

%f  È sostituito dal nome del file corrente.

%i  È sostituito dall'indice (cioè la posizione) del file corrente nella lista dei file in input.

%lX È sostituito dal numero di una riga nel file di input. La riga da usare è determinata dalla X, come nell'opzione %b.

%L  È sostituito dal numero di riga dell'ultima riga del file di input.

%m  È sostituito dal numero totale di file di input.

%pX È sostituito dalla posizione percentuale all'interno del file corrente.

%s  Come %B.

%t  Causa la rimozione di qualsiasi spazio in più. Di solito è utilizzato alla fine della stringa, ma può apparire ovunque.

%x  È sostituito dal nome del file di input successivo della lista.

Se un qualsiasi valore è sconosciuto (ad esempio, la lunghezza del file se l'input è una pipe), un punto di domanda viene visualizzato al suo posto.

Il formato della stringa del prompt può essere cambiato dipendentemente da cercte condizioni. Un punto di domanda (?) seguito da un singolo carattere si comporta come un "IF": a seconda del carattere successivo, viene valutata una condizione. Se la condizione è vera, qualsiasi carattere successivo al punto di domanda ed al carattere che costituisce la condizione, fino ad un punto, è incluso. Viceversa, se la condizione è falsa, nessun carattere viene incluso. I due punti (:) tra il punto di domanda ed il punto possono essere usati come "ELSE": ogni carattere tra i due punti ed il punto è incluso nella stringa se e solo se la condizione IF è falsa. I caratteri condizionali (che seguono il punto di domanda) possono essere:

?a  Vero se sono stati inclusi caratteri nel prompt fino a questo momento.

?bX Vero se l'offset in byte della riga specificata è conosciuto.

?B  Vero se la dimensione del file corrente è conosciuta.

?e  Vero se si è alla fine del file.

?f  Vero se l'input è un file (cioè non è una pipe).

?lX Vero se il numero di riga della riga specificata è conosciuto.

?L  Vero se il numero di riga dell'ultima riga del file è conosciuto.

?m  Vero se c'è più di un file di input.

?n  Vero se questo è il primo prompt in nuovo file di input (cioè si è alla prima schermata).

?pX Vero se la posizione percentuale all'interno del file della riga specificata è conosciuta.

?s  Come "?B".

?x  Vero se c'è un file di input successivo (cioè se il file corrente non è l'ultimo).

Qualsiasi carattere diverso da quelli speciali (punto di domanda, due punti, punto, percentuale e backslash) diventa letteralmente parte del prompt. Qualsiasi carattere speciale può essere incluso letteralmente nel prompt precedendolo con un backslash (.

Alcuni esempi:

?f%f:Input standard.

Questo prompt stampa il nome del file, se è conosciuto; altrimenti la stringa "Input standard".

?f%f .?ltRiga %lt:?pt%pt\%:?btByte %bt:-...

Questo prompt stampa il nome del file, se conosciuto. Quest'ultimo è seguito dal numero di riga, se conosciuto, o altrimenti dalla posizione percentuale, se conosciuta, o altrimenti dall'offset in byte, se conosciuto. Se anche questo è ignoto, un segno menu (-) viene visualizzato. Notate come ciascuno punto di domanda ha un corrispondente punto, e come il segno % dopo il %pt è incluso letteralmente tramite il backslash.

?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x..%t

Questo prompt stampa il nome del file se questo è il primo prompt del file (se cioè vi trovate alla prima schermata), seguito dal messaggio "file N di N" se c'è più di un file di input. Poi, quando ci si trova alla fine del file, la stringa "(END" viene visualizzata, seguita dal nome del file successivo, se c'è. Infine, ogni spazio in più è troncato. Questo è il prompt di default. Per riferimento, qui ci sono i default per gli altri due prompt (rispettivamente -m e -M). Ognuno è spezzato in due righe per questioni di leggibilità.

?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x.:
	?pB%pB\%:byte %bB?s/%s...%t

?f%f .?n?m(file %i of %m) ..?ltline %lt?L/%L. :byte %bB?s/%s. .
	?e(END) ?x- Next\: %x.:?pB%pB\%..%t

E qui c'è il messaggio di default prodotto dal comando = :

?f%f .?m(file %i of %m) .?ltline %lt?L/%L. .
	byte %bB?s/%s. ?e(END) :?pB%pB\%..%t

Le possibilità di espansione del prompt sono usate anche per un altro scopo: se una variabile d'ambiente LESSEDIT è definita, essa è usata come comando da eseguirsi quando il comando v è chiamato. La stringa LESSEDIT viene espansa nello stesso modo in cui vengono espanse le stringhe del prompt. Il valore di default per LESSEDIT è:

	%E ?lm+%lm. %f

Notate che questo espande al nome dell'editor, seguito da un + e dal numero di riga, seguito dal nome del file. Se il vostro editor non accetta la sintassi "+numerodiriga", o ha una sintassi di chiamata diversa, la variabile LESSEDIT può essere cambiata per variare questo default.

VARIABILI D'AMBIENTE

COLUMNS
    Imposta il numero di colonne dello schermo. Questa variabile ha la precedenza sul numero di colonne specificato nella variabile TERM (ma se avete un sistema a finestre che supporta TIOCGWINSZ o WIOCGETD, l'idea del sistema a finestre sulla dimensione del vostro schermo ha la precedenza sulle variabili d'ambiente LINES e COLUMNS).

EDITOR
    Il nome dell'editor (usato per il comando v).

HOME
    Il nome della home directory (~) dell'utente (usata per cercare il file .less).

LANG
    Lingua per la determinazione dell'insieme di caratteri.

LC_CTYPE
    Lingua per la determinazione dell'insieme di caratteri.

LESS
    Flag (parametri) che vengono passati a less automaticamente.

LESSBINFMT
    Formato per la visualizzazione di caratteri non stampabili e non di controllo.

LESSCHARDEF
    Definisce un insieme di caratteri.

LESSCHARSET
    Seleziona un insieme di caratteri predefinito.

LESSCLOSE
    Linea di comando per chiamare il postprocessore dell'input (opzionale).

LESSEDIT
    Stringa di prototipo per l'editor (usata dal comando v). Leggete la discussione sotto PROMPT.

LESSHELP
    Nome del file di aiuto.

LESSOPEN
    Linea di comando per chiamare il preprocessore dell'input (opzionale).

LINES
    Imposta il numero di righe dello schermo. Ha la precedenza sul numero di righe specificate nella variabile d'ambiente TERM.

SHELL
    Specifica la shell da usare per eseguire il comando ! e per espandere i nomi dei file.

TERM
    Specifica il tipo di terminale su cui less sta girando.

VISUAL
    Specifica il nome dell'editor (usato dal comando v).

VEDERE ANCHE
lesskey(1)

NOTE
Il comando = ed i prompt (se non sono stati cambiati con l'opzione -P) riportano il numero della riga in cima allo schermo, ma l'offset in byte e la posizione percentuale della riga in fondo allo schermo.

Se il comando :e è usato per nominare più di un file, e uno dei file nominati è già stato visualizzato precedentemente, i nuovi file potrebbero essere immessi nella lista in ordine pseudo casuale.

Su alcuni terminali vecchi (i cosiddetti terminali "magic cookie"), l'evidenziazione fatta dalla funzione di ricerca causa una visualizzazione scorretta. Su questi terminali, l'evidenziazione è disabilitata di default per evitare eventuali problemi.

In alcuni casi, quando l'evidenziazione è abilitata ed il modello di ricerca inizia con un ^, la stringa evidenziata è più ampia di quella effettivamente corrispondente al modello.

COPYRIGHT
Copyright (c) 1984,1985,1989,1994,1995 Mark Nudelman

Traduzione in italiano di
Michele Beltrame, mentat@italpro.com
Settembre 1996