Không phải không hack mã nguồn ít hơn. Một chút câu chuyện nền:
Ít hơn không thể xử lý chuột (bao gồm cả các sự kiện cuộn).
Trình giả lập thiết bị đầu cuối hỗ trợ một cái gọi là màn hình thay thế. Đây là điều mà hầu hết các ứng dụng toàn màn hình chuyển sang thời lượng của chúng (và quay lại màn hình bình thường khi chúng thoát, khiến các nội dung trước đó "khôi phục") và nó không có bộ đệm cuộn lại. Ít hơn cũng chuyển sang màn hình thay thế này, trừ khi -X
được đưa ra trong trường hợp nó không.
Nhiều trình giả lập thiết bị đầu cuối đã phát hiện ra rằng khi nó ở chế độ màn hình thay thế và ứng dụng chạy bên trong không quan tâm đến các sự kiện chuột, việc chuyển đổi cuộn thành các sự kiện nhấn phím Lên hoặc Xuống có ý nghĩa. Đó là một hack và nó có hại trên màn hình bình thường (hãy tưởng tượng điều gì sẽ xảy ra, ví dụ như tại dấu nhắc shell của bạn) hoặc khi ứng dụng muốn xử lý chuột (chắc chắn, sau đó họ phải xem các sự kiện chuột thực tế). Nhưng vì theo mặc định, cả hai đều không giữ được khi bạn chạy less
, hack này khởi động (tùy thuộc vào trình giả lập thiết bị đầu cuối hỗ trợ nó và được kích hoạt thông qua \e[?1007h
vs.\e[?1007l
). Các sự kiện cuộn của bạn được trình mô phỏng đầu cuối chuyển đổi thành các phím nhấn Lên và Xuống và ít có thể phân biệt chúng với các phím bấm thực tế. Nó không nhận được các sự kiện cuộn chuột: nó nhìn thấy các phím nhấn Lên và Xuống.
Vì vậy, bạn có: Hoặc là bạn chuyển sang màn hình thay thế và hack của thiết bị đầu cuối chuyển đổi các sự kiện cuộn thành phím bấm và màn hình bình thường được khôi phục khi bạn thoát; hoặc bạn không, và sau đó không thể có bất kỳ sự kiện cuộn chuyển đổi kỳ diệu nào thành phím bấm và ít hiểu các sự kiện cuộn.
Vì vậy, những gì có thể được thực hiện? Chà, hoặc thực hiện hỗ trợ chuột ít hơn và để nó tự xử lý các sự kiện cuộn (và sống với hành vi nhấp chuột không sao chép hoặc sao chép-dán) hoặc thực hiện một hành động hack kỳ lạ khác: sau khi thoát khỏi màn hình bình thường, less
có thể lần cuối in một màn hình nội dung, lặp lại bất cứ điều gì được hiển thị trước khi bạn thoát.
Trong thực tế, về cơ bản, nó sôi lên: xin lỗi, quên nó đi.