git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: why does git set X in LESS env var?

From
Andy Koppe <andy.koppe@gmail.com>
Date
Nov 3, 2023, 15:28 UTC
Message-ID
<CAHWeT-aftfawZ9DhqC1NkQrJAuArJZC65ZDr4FyPwEc7aXGVuA@mail.gmail.com>
In-Reply-To
<24c46f25-6b31-437d-9f89-1e8eb74136c8@gmail.com>
Thomas Guyot wrote:
> >> I actually have one major issue with it, it's that displaying anything
> >> less than a full page will fill the screen with ~ on the bottom, just
> >> like when scrolling up on a partial page  without -F.
'less' has the '-~' (or --tilde) option to suppress that.
Show 14 quoted lines
> I mentioned it slightly above, to be clear it would mean that:
>
> 1. less starts by just writing lined down as usual, making any lines
> above scroll up and overflow into the scrollback buffer as usual
> 2.  If less draws less than a page, exits as before - the effective
> result is as if pager was cat
> 3. If less reaches a full page and still has lines to write, it turns on
> -c's behavior and further updates happen from the top of the screen,
> preventing scroll up (at least on rxvt-unicode)
>
> Now, if all other terms misbehave here, that's an issue, making this
> suggestion mostly useless. And considering the number of Windows users
> we absolutely need to test Windows Terminal, and should probably test
> MacOS's term too (whatever that is).

For what it's worth, the 'mintty' terminal used by default for Git for Windows as well as MSYS and Cygwin has another approach to the whole problem. Its rather flippantly named 'Flip Screen' context menu command with Alt+F12 or Ctrl+Shift+S shortcut lets users temporarily look at the alternate screen buffer while the main screen buffer is active, and vice versa.

If 'less' is invoked without the -X option, it will switch to the alternate screen, where mousewheel scrolling works by sending cursor up/down keycodes. While in 'less', you can temporarily flip to the main screen to look up something in the shell session there or copy something for searching in 'less'. While looking at the main screen, the mousewheel will scroll the scrollback buffer. Keyboard input that's sent to 'less' will flip back to the alternate screen.

Quitting 'less' switches back to the main screen, so the 'less' output disappears and you're back in the shell session with the command that invoked 'less' as the last thing shown. But again, the 'Flip Screen' command or shortcuts can be used to temporarily look at or copy from the alternate screen, which will contain the last page displayed by 'less'. (The alternate screen does not have a scrollback buffer.)

The 'Flip Screen' feature of course also works with other alternate-screen applications, for example editors.

Apparently the Mac terminal has such a feature as well: https://support.apple.com/en-ie/guide/terminal/trmld1f46097/mac

(Full disclosure: I originally made mintty, from PuTTY.)

Kind regards, Andy

Previous: Thomas GuyotNext: Dragan Simic
Message 35 of 39 in “why does git set X in LESS env var?”
  1. Christoph Anton MittererOct 11, 2023
  2. Junio C HamanoOct 11, 2023
  3. Christoph Anton MittererOct 11, 2023
  4. Dragan SimicOct 11, 2023
  5. Christoph Anton MittererOct 11, 2023
  6. Dragan SimicOct 11, 2023
  7. Christoph Anton MittererOct 11, 2023
  8. Dragan SimicOct 12, 2023
  9. Christoph Anton MittererOct 12, 2023
  10. Dragan SimicOct 12, 2023
  11. Christoph Anton MittererOct 12, 2023
  12. Dragan SimicOct 12, 2023
  13. Christoph Anton MittererOct 12, 2023
  14. Dragan SimicOct 12, 2023
  15. Christoph Anton MittererOct 12, 2023
  16. Dragan SimicOct 12, 2023
  17. Christoph Anton MittererOct 12, 2023
  18. Dragan SimicOct 13, 2023
  19. Christoph Anton MittererOct 13, 2023
  20. Dragan SimicOct 13, 2023
  21. Jeff KingOct 12, 2023
  22. Dragan SimicOct 12, 2023
  23. Junio C HamanoOct 12, 2023
  24. Dragan SimicOct 12, 2023
  25. Junio C HamanoOct 12, 2023
  26. Dragan SimicOct 13, 2023
  27. Christoph Anton MittererOct 12, 2023
  28. Dragan SimicOct 12, 2023
  29. Thomas GuyotNov 2, 2023
  30. Dragan SimicNov 2, 2023
  31. Dragan SimicNov 2, 2023
  32. Thomas GuyotNov 2, 2023
  33. Dragan SimicNov 2, 2023
  34. Thomas GuyotNov 3, 2023
  35. Andy KoppeNov 3, 2023
  36. Dragan SimicNov 3, 2023
  37. Dragan SimicNov 3, 2023
  38. Dragan SimicNov 6, 2023
  39. Dragan SimicMar 21, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.