daha az çağrı cihazı kaydırma tekerleğine nasıl tepki verir ve ekranı temizlemez


13

Bayrağı $ LESS ortam değişkeninden kaldırmak için nasıl-yapmak-fare-tekerlek-kaydırma-the-az-çağrı-kullanarak-bash-ve-gnome-terminali gibi cevaplar biliyorum -X. Ama her ikisini de yapmak istiyorum :

  1. (terminal pencerenin kaydırma çubuğunu kaydırma yerine) (eğer almak hangi çağrı cihazı kaydırmak için fare tekerleğini kullanın kaldırarak -X gelen $LESS)
  2. çağrı cihazı içeriği sahip (normalde yoluyla yapıldığı bıraktıktan sonra ekranda kalır ilave -X etmek $LESS).

Pastanı alıp yiyebilmemin bir yolu var mı?

Yanıtlar:


20

Less'in kaynak kodunu hacklemeden olmaz. Biraz arka plan hikayesi:

Daha azı fareyi (kaydırma olayları dahil) hiç işleyemez.

Terminal emülatörleri alternatif bir ekranı destekler. Çoğu tam ekran uygulamasının süreleri boyunca geçiş yaptığı (ve çıktıklarında normal ekrana geri dönerek önceki içeriğin "geri yüklenmesine" neden olan) ve geri kaydırma arabelleği yoktur. Daha azı -X, bu durumda verilmediği sürece bu alternatif ekrana geçer .

Birçok terminal öykünücüsü, alternatif ekran modundayken ve içeride çalışan uygulama fare olaylarıyla ilgilenmediğinde, kaydırmanın Yukarı veya Aşağı tuşa basma olaylarına dönüştürülmesinin mantıklı olduğunu anladı . Bu bir hack'tir ve normal ekranda (örneğin kabuk isteminizde ne olacağını hayal edin) veya uygulama fareyi işlemek istediğinde (elbette gerçek fare olaylarını görmek zorunda olduklarında) zararlı olacaktır. Ancak varsayılan olarak, bu ikisinin ikisi de çalışırken tutarken less, bu saldırı devreye girer (onu destekleyen terminal öykünücüsüne tabidir ve \e[?1007hvs.\e[?1007l). Kaydırma olaylarınız terminal öykünücüsü tarafından Yukarı ve Aşağı tuşa basılarak dönüştürülür ve daha azı gerçek tuşlardan ayırt edilemez. Fare kaydırma olaylarını almaz: Yukarı ve Aşağı tuşlarına basar.

Yani siz varsınız: Ya alternatif ekrana geçersiniz ve terminalin korsanlığı kaydırma olaylarını daha az süreyle tuşlara dönüştürür ve çıktığınızda normal ekran geri yüklenir; ya da bunu yapmazsınız ve daha sonra kaydırma olaylarını tuşlara bastıracak sihirli bir şey olamaz ve kaydırma olaylarını daha az anlamıyor.

Peki ne yapılabilir? Peki ya fare desteğini daha az uygulayın ve kaydırma olaylarının kendisini yönetmesine izin verin (ve varsayılan olmayan bir tıklama veya kopyala yapıştırma davranışı ile yaşayın) ya da başka bir garip kesmek uygulayın: bıraktıktan sonra normal ekrana döndükten sonra lessson kez yapabilir çıkmadan önce görüntülenen her şeyi tekrarlayarak bir dizi içerik yazdırın.

Pratikte, temelde aşağıdakilere kaynar: üzgünüm, unutun.


0

Görünüşe göre daha az 530 veya daha yeni bir sürüme yükseltin, istediğiniz özelliği elde edersiniz,

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

Bunlar sürüm 487 ve sürüm 530 arasındaki farklardır:

-F ve dosya bir ekrana sığarsa, terminal başlatma sırasını çıkarmayın.

Daha yeni sürüme sahip 'daha az' PPA bulamadık, bu yüzden kaynak paketi indirin ve yerel olarak oluşturun ve yükleyin.

ve git'i şu şekilde yapılandır:

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

daha fazla bilgi: “-X” olmadan “less -F” nasıl kullanılır, ancak yalnızca bir sayfa varsa çıktıyı görüntüler?


0

Daha az çağrı cihazı kaydırmak için fare tekerleğini kullanmak gerçekten mümkün değildir, ancak içeriği w3m çağrı cihazı ile kaydırmak için fare tekerleğini kullanmak mümkündür! w3m " mükemmel tablolar / çerçeve desteği ile WWW göz atılabilir bir çağrı cihazıdır ", bu yüzden konsol web tarayıcısı olarak kullanmak bile mümkündür. Ayrıca, w3m'yi konsol görüntü görüntüleyici olarak kullanmak mümkündür (tüm terminal emülatörleriyle çalışmaz, ancak xterm ile oldukça iyi çalışır). w3m " tablolar, çerçeveler, SSL bağlantıları, renkli ve satır içi görüntüler için desteğe sahiptir ". Çok kullanışlı bir uygulama! ekran görüntüsü

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.