GNU/Linux >> LINUX-Kenntnisse >  >> Linux

wie man weniger Pager dazu bringt, auf das Scrollrad zu reagieren und den Bildschirm nicht zu löschen

Nicht ohne den Quellcode von Less zu hacken. Ein bisschen Hintergrundgeschichte:

Less kann überhaupt nicht mit der Maus (einschließlich Scroll-Events) umgehen.

Terminal-Emulatoren unterstützen einen sogenannten alternativen Bildschirm. Dies ist der Bereich, in den die meisten Vollbild-Apps für ihre Dauer wechseln (und beim Beenden zum normalen Bildschirm zurückkehren, wodurch der vorherige Inhalt "wiederhergestellt" wird), und es gibt keinen Scrollback-Puffer. Less wechselt auch zu diesem alternativen Bildschirm, es sei denn -X angegeben, in diesem Fall nicht.

Viele Terminal-Emulatoren haben herausgefunden, dass im alternativen Bildschirmmodus und Da die darin laufende Anwendung nicht an Mausereignissen interessiert ist, ist es sinnvoll, das Scrollen in Aufwärts- oder Abwärts-Tastendruckereignisse umzuwandeln. Es ist ein Hack, und es wäre entweder auf dem normalen Bildschirm schädlich (stellen Sie sich vor, was z. Aber da standardmäßig keines dieser beiden gilt, wenn Sie less ausführen , tritt dieser Hack ein (vorausgesetzt der Terminal-Emulator unterstützt ihn und wird über \e[?1007h aktiviert gegenüber \e[?1007l ). Ihre Scroll-Ereignisse werden vom Terminal-Emulator in Aufwärts- und Abwärts-Tastendrücke umgewandelt, und weniger können sie nicht von tatsächlichen Tastendrücken unterscheiden. Es empfängt keine Maus-Scroll-Ereignisse:Es sieht Aufwärts- und Abwärts-Tastendrücke.

Da sind Sie also:Entweder Sie wechseln zum alternativen Bildschirm und der Hack des Terminals wandelt Scroll-Ereignisse für weniger Geld in Tastendrücke um, und der normale Bildschirm wird wiederhergestellt, wenn Sie ihn verlassen; oder Sie tun es nicht, und dann kann es keine Magie geben, die Scroll-Ereignisse in Tastendrücke umwandelt, und weniger versteht die Scroll-Ereignisse nicht.

Was könnte also getan werden? Nun, implementieren Sie entweder die Mausunterstützung in Less und lassen Sie es Scroll-Ereignisse selbst verarbeiten (und leben Sie mit einem nicht standardmäßigen Klick- oder Kopier-Einfüge-Verhalten), oder implementieren Sie einen anderen seltsamen Hack:Beim Beenden, nach der Rückkehr zum normalen Bildschirm, less konnte zum letzten Mal einen Bildschirm voller Inhalte drucken und wiederholen, was vor dem Beenden angezeigt wurde.

In der Praxis läuft es im Grunde darauf hinaus:Sorry, vergiss es.


Anscheinend erhalten Sie mit einem Upgrade auf weniger als 530 oder neuer die gewünschte Funktion,

http://www.greenwoodsoftware.com/less/news.530.html

Dies sind die Unterschiede zwischen Version 487 und Version 530:

Keine Terminal-Init-Sequenz ausgeben, wenn -F verwendet wird und die Datei auf einen Bildschirm passt.

Ich habe keine "weniger" PPA gefunden, die die neuere Version haben, also laden Sie einfach das Quellpaket herunter und bauen Sie es lokal und installieren Sie es.

und konfigurieren Sie git wie folgt:

git config --global core.pager 'less -F -S -R -i -+X'

Weitere Informationen:Wie verwendet man „weniger -F“ ohne „-X“, zeigt aber trotzdem die Ausgabe an, wenn nur eine Seite angezeigt wird?


Linux
  1. Wie ändere ich die Scrollrate des Mausrads?

  2. So drehen Sie den Bildschirm auf einem Raspberry Pi 3

  3. So verwenden Sie den Befehl „screen“ unter Linux

  4. Wie lösche ich das Scrollback im Bildschirmbefehl?

  5. Wie erstellt und wendet man einen SVN-Patch an?

So löschen (leeren) Sie den DNS-Cache unter Windows, MacOS und Linux

Wie man den Befehl fuser unter Linux verwendet und optimal nutzt

So sperren Sie Tastatur und Maus, aber nicht den Bildschirm unter Linux

Warum „löschen“ den ganzen Bildschirm nicht löschen?

So installieren und verwenden Sie den Bildschirmbefehl Ubuntu 20.04

Wie lösche ich die Anmeldeinformationen in AWS Configure?