How can I set `less` or `more` max lines (scrollable height) limit/boundary in linux?

2

(Sorry for the title. Any suggestions?)

I've set my commandline PS1 to cover 3 lines:

  1. white space
  2. user, server and pwd
  3. $ or # to input

I think less (or more?) is configured to break after window's height - 1, because when I do a $ git log, the first two lines are invisible at the top of the window and the rest is scrollable.

I'm not sure who handles this scrolling and its configuration, but I assume GIT uses less/more.

Where can I configure that my scrollable window is window height - 3 lines and not window height - 1?

More info:

  • If I cat lines.txt | less with a 23 line file, it shows the entire file and no scrolling.
  • If I do the same with a 24 line file, it doesn't show line 1 (and no scrolling).
  • With 25 lines: doesn't show lines 1 and 2 (and no scrolling).
  • With 26 lines: shows line 1 and scrolling!

The less breakpoint is at the wrong height...

Rudie

Posted 2012-06-12T21:10:58.410

Reputation: 519

What keeps your prompt at the bottom of your screen while less and more are running? o.O My screen session has a statusline forced at the bottom, but it also shrinks the reported window size by 1 so that applications don't have this issue. – Darth Android – 2012-06-12T21:27:22.220

I think it only happens if there aren't enough lines to go to scroll mode (window height - 1), but there are enough for some to be invisible (window height - 3, since my PS1 is 3 high). (I can't reproduce it now, because I've just pushed which clears the log =)) – Rudie – 2012-06-12T21:59:49.427

Yeah that's it. If I cat+less a file with 26 lines, it shows line 1 at the top and line 25 and : at the bottom. If I do the same for a 24 line file it shows line 2 at the top and no scrolling. (If 25 lines, lines 1 and 2 aren't visible.) – Rudie – 2012-06-12T22:03:48.220

Answers

0

What is the output of echo $LESS ?

Does it work right if you LESS="" less /path/to/25line/file.txt ?

Darth Android

Posted 2012-06-12T21:10:58.410

Reputation: 35 133

Output of $ echo $LESS is -FRSX. No idea what that means.... Scrolling behaviour is the exact same with the LESS="". – Rudie – 2012-06-12T22:26:01.530

The -F is your problem. It causes less to quit if there's less than one screen of text, but that expects a 1-line prompt. I don't think there's a way to redefine what 'one screen' is, but you can export LESS="-RSX" to fix the behavior. Stick it somewhere like your .profile or similar to make it persist. – Darth Android – 2012-06-12T22:29:40.623