Bukan tanpa meretas kode sumber less's. Sedikit cerita latar belakang:
Kurang tidak bisa menangani mouse (termasuk acara gulir) sama sekali.
Terminal emulator mendukung layar alternatif yang disebut. Inilah yang sebagian besar aplikasi layar penuh beralih ke durasinya (dan beralih kembali ke layar normal ketika mereka berhenti, menyebabkan konten sebelumnya "pulih"), dan tidak memiliki buffer scrollback. Kurang juga beralih ke layar alternatif ini, kecuali -X
diberikan dalam kasus yang tidak.
Banyak emulator terminal mengetahui bahwa ketika berada dalam mode layar alternatif dan aplikasi yang berjalan di dalamnya tidak tertarik pada acara mouse, masuk akal untuk mengubah pengguliran menjadi acara penekanan tombol Atas atau Bawah. Ini adalah retasan, dan itu akan berbahaya baik di layar normal (bayangkan apa yang akan terjadi misalnya pada prompt shell Anda), atau ketika aplikasi ingin menangani mouse (tentu, mereka harus melihat kejadian sebenarnya mouse itu). Tetapi karena secara default tidak satu pun dari keduanya ini bertahan ketika Anda menjalankan less
, peretasan ini menendang (tergantung pada emulator terminal yang mendukungnya, dan diaktifkan melalui \e[?1007h
vs.\e[?1007l
). Acara gulir Anda dikonversi oleh emulator terminal ke penekanan tombol Atas dan Bawah, dan lebih sedikit yang tidak dapat membedakannya dari penekanan tombol yang sebenarnya. Itu tidak menerima acara gulir mouse: ia melihat tombol Atas dan Bawah.
Jadi begitulah Anda: Entah Anda beralih ke layar alternatif dan hack terminal mengubah acara gulir menjadi penekanan tombol menjadi lebih sedikit, dan layar normal dipulihkan saat Anda keluar; atau Anda tidak, dan kemudian tidak ada keajaiban yang mengubah acara gulir ke penekanan tombol dan kurang tidak memahami acara gulir.
Jadi apa yang bisa dilakukan? Baik, implementasikan dukungan mouse dalam waktu kurang dan biarkan ia menangani acara gulir itu sendiri (dan hidup dengan klik tidak cacat atau perilaku salin-tempel), atau laksanakan peretasan aneh lainnya: setelah berhenti, setelah kembali ke layar normal, less
dapat untuk terakhir kalinya cetak satu layar penuh konten, ulangi apa pun yang ditampilkan sebelum Anda berhenti.
Dalam praktiknya, itu pada dasarnya bermuara pada: maaf, lupakan saja.