Faire moins d'impression sur stdout si un fichier entier peut être affiché sur un seul écran

13

Quand moreest passé un fichier dont le contenu peut être affiché sur un écran, il écrit simplement le contenu du fichier sur stdout sans pagination. Si le fichier ne peut pas tenir sur un seul écran, moreil le pagine.

lessa une option pour quitter si le fichier avec lequel il travaille peut être affiché sur un seul écran ( -F) et il a une morefonctionnalité -émulation qui se comporte de manière similaire à l' -Findicateur, mais aucune de ces options ne semble provoquer l' lessécriture du contenu du fichier à stdout si le contenu peut tenir sur un seul écran.

Comment puis-je lessécrire le contenu d'un fichier sur stdout si le contenu du fichier peut tenir sur un seul écran et paginer le fichier comme il le ferait normalement autrement?


la source

Réponses:

16

Utilisez less -FX. De man less:

   -F or --quit-if-one-screen
          Causes less to automatically exit if the entire file can be dis-
          played on the first screen.

   -X or --no-init
          Disables sending the termcap initialization and deinitialization
          strings  to  the  terminal.   This is sometimes desirable if the
          deinitialization string does something unnecessary, like  clear-
          ing the screen.
Chris Down
la source
Pourquoi ne -Ffonctionne qu'avec -X?
Jesse
2
@Jesse Cela fonctionne très bien sans -X, mais pas comme prévu. Étant donné que less est un pageur qui agit sur l'écran secondaire de votre terminal, si vous ne désactivez pas l'initialisation termcap, il démarrera et se fermera sur l'écran secondaire . Vous verrez probablement un flash rapide.
Chris Down du
Je ne vois donc rien avec echo lol | LESS=F lesscar il s'imprime sur un autre écran et revient immédiatement en arrière? Cela a du sens, je suppose (même si je ne vois pas de flash rapide). Merci.
Jesse
Bah! Je me demande ce que les développeurs en pensaient moins en utilisant l'écran alternatif si -F est présent et "utilisé". Cela n'a aucun sens d'utiliser l'écran alternatif dans ce cas.
ThiefMaster
Voir unix.stackexchange.com/q/107315/85237 pour faire less -Ffonctionner sans -X.
John Mellor