come fare in modo che meno cercapersone risponda alla rotella di scorrimento e non cancellare lo schermo


13

Conosco risposte come how-to-make-mouse-wheel-scroll-the-less-pager-using-bash-and-gnome-terminal , che è quello di rimuovere il -Xflag dalla variabile d'ambiente $ LESS. Ma vorrei fare entrambe queste cose:

  1. utilizzare la rotellina del mouse per scorrere il cercapersone (anziché scorrere la barra di scorrimento della finestra del terminale) (che si ottiene rimuovendo -X da $LESS)
  2. fare in modo che il contenuto del cercapersone rimanga sullo schermo dopo la chiusura (cosa che normalmente si ottiene aggiungendo -X a $LESS).

C'è un modo in cui posso avere la mia torta e mangiarla anche io?

Risposte:


20

Non senza hackerare il codice sorgente di less. Un po 'di storia di fondo:

Less non è in grado di gestire il mouse (inclusi gli eventi di scorrimento).

Gli emulatori di terminale supportano un cosiddetto schermo alternativo. Questa è la maggior parte delle app a schermo intero che passano per la loro durata (e tornano alla schermata normale quando si chiudono, causando il "ripristino" dei contenuti precedenti) e non ha un buffer di scorrimento. Meno passa anche a questa schermata alternativa, a meno che non -Xsia indicato nel qual caso non lo è.

Molti emulatori di terminali hanno capito che quando è in modalità schermo alternativo e l'applicazione in esecuzione all'interno non è interessata agli eventi del mouse, ha senso convertire lo scorrimento in eventi di pressione dei tasti Su o Giù. È un hack, e sarebbe dannoso sullo schermo normale (immagina cosa succederebbe ad es. Al prompt della shell) o quando l'applicazione desidera gestire il mouse (certo, devono vedere gli eventi reali del mouse). Ma poiché per impostazione predefinita nessuno di questi due regge durante l'esecuzione less, questo hack entra in azione (soggetto all'emulatore di terminale che lo supporta e abilitato tramite \e[?1007hvs.\e[?1007l). Gli eventi di scorrimento vengono convertiti dall'emulatore di terminale in pressioni di tasti Su e Giù e meno non riescono a distinguerli dai tasti premuti effettivi. Non riceve eventi di scorrimento del mouse: vede i tasti Su e Giù.

Quindi eccoti: O passi alla schermata alternativa e l'hack del terminale converte gli eventi scroll in tasti premuti per meno, e la schermata normale viene ripristinata quando esci; o non lo fai, e quindi non ci può essere alcuna magia che converta gli eventi di scorrimento in tasti premuti e meno non capisce gli eventi di scorrimento.

Quindi cosa si potrebbe fare? Bene, o implementa il supporto del mouse in meno e lascia che gestisca gli eventi di scorrimento stessi (e vivi con un clic non predefinito o un comportamento di copia e incolla), o implementa un altro strano trucco: al momento della chiusura, dopo essere tornato alla schermata normale, lesspotrebbe per l'ultima volta stampare una schermata di contenuti, ripetendo ciò che è stato visualizzato prima di uscire.

In pratica, si riduce sostanzialmente a: scusa, dimenticalo.


0

Apparentemente l'aggiornamento a meno 530 o più recenti ti darà la funzionalità desiderata,

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

Queste sono le differenze tra la versione 487 e la versione 530:

Non generare la sequenza di inizializzazione del terminale se si utilizza -F e il file si adatta a una schermata.

Non ho trovato PPA "meno" con la versione più recente, quindi scarica il pacchetto sorgente e compila localmente e installalo.

e configurare git in questo modo:

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

maggiori informazioni: Come utilizzare "less -F" senza "-X", ma visualizzare comunque l'output se solo una pagina?


0

Non è davvero possibile utilizzare la rotellina del mouse per scorrere meno cercapersone, ma è possibile utilizzare la rotellina del mouse per scorrere il contenuto con il cercapersone w3m! w3m è un " cercapersone sfogliabile WWW con un eccellente supporto per tabelle / frame ", quindi è persino possibile utilizzarlo come browser web della console. Inoltre, è possibile utilizzare w3m come visualizzatore di immagini per console (non funziona con tutti gli emulatori di terminale, ma funziona abbastanza bene con xterm). w3m " ha supporto per tabelle, frame, connessioni SSL, immagini a colori e in linea ". Applicazione molto utile! immagine dello schermo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.