Scrollen mit der Maus funktioniert nicht mehr mit Less im Terminal

Seit einigen Jahren unterstützt Terminal.appless in MacOS das Scrollen mit der Maus mit dem Programm, aber heute ist mir aufgefallen, dass es kein Scrollen mit der Maus mehr akzeptiert und jetzt nur noch mit den Tasten Upund funktioniert Down.


Was funktioniert nicht:

lessund alle anderen Programme, die es verwenden, akzeptieren keine Maus-Scrolls. Stattdessen wird das Terminalfenster gescrollt. Diese „anderen“ Programme sind:

  • man
  • git log
  • diff

Früher lesswurde auch der Bildschirm beim Schließen gelöscht ( q), aber jetzt bleibt der Text auf dem Bildschirm.


Was ich versucht habe:

  • Andere Programme getestet: vim Akzeptiert zum Beispiel noch Maus-Scrolls
  • Andere Terminal-Emulatoren verwendet: Akzeptiert auch lesskeine Maus-ScrollsHyper
  • Getestet auf einem anderen Computer über SSH: Verbunden mit einem meiner VPS und lessdort in der Terminal-App verwendet. Mouse-Scrolls funktionieren damit.
  • Benutzte eine neuere Version von less: Installierte die neueste Version (530) von less mit Homebrew , aber es funktioniert auch nicht mit Maus-Scrolls.

Ich bin mir also nicht sicher, was falsch ist. Würde mich sehr über jede Hilfe freuen, um lessMaus-Scrolls wieder zu akzeptieren.

Antworten (2)

Nachdem ich einige andere Antworten durchgegangen bin, habe ich festgestellt, dass es eine $LESSUmgebungsvariable gibt, die Standard-Flags enthält.

-FRXEs ist auf meinem anderen Mac- und Ubuntu-System leer, aber aus irgendeinem Grund ist es auf diesem Computer gleich , und das verursacht diese Probleme :

  • -Xhat dazu geführt, dass Maus-Scrolls NICHT akzeptiert wurden
  • -Fbewirkte, dass es bei kleinen Dateien automatisch beendet wurde

Was seltsam ist, da ich es nie geändert habe, also muss es von einem anderen Programm geändert worden sein. Wie auch immer, das manuelle Einstellen in meinen .rcDateien hat das Problem behoben:

export LESS="-R"

Quellen:

Du hast meinen Respekt. Eine Frage - wie haben Sie festgestellt, dass $LESS auf Ihrem Computer den Wert von hatte -FRX. Ich lief echo $LESSund es zeigte den richtigen Wert von -R. Trotzdem habe ich hinzugefügt export LESS="-R"und .zshrcdas hat den Zweck erfüllt.

Falls Sie lessdrinnen git(durch git logoder ähnlich) verwenden:

git-config docs haben die Antwort:

Wenn die LESSUmgebungsvariable nicht gesetzt ist, setzt Git sie auf FRX(wenn LESSdie Umgebungsvariable gesetzt ist, ändert Git sie überhaupt nicht). Wenn Sie die Standardeinstellung von Git für selektiv überschreiben möchten LESS, können Sie core.pagerz less -S. Dies wird von Git an die Shell übergeben, die den endgültigen Befehl in LESS=FRX less -S. Die Umgebung legt die Option nicht fest S, aber die Befehlszeile tut dies und weist Less an, lange Zeilen abzuschneiden. In ähnlicher Weise wird durch die Einstellung core.pagerauf die von der Umgebung angegebene Option in der Befehlszeile less -+Fdeaktiviert , wodurch das "Beenden, wenn ein Bildschirm"-Verhalten von deaktiviert wird .Fless

(Hervorhebung von mir)

TLDR:

  • gitist die $LESSUmgebungsvariable, die gesetzt wird FRX, wenn sie leer ist
  • Scrollen less funktioniert nicht mit XOptionssatz
  • Deaktivieren Sie die Standardoption Xmitgit config --global --add core.pager "less -+X"