less의 소스 코드를 해킹하지 않고는 아닙니다. 약간의 배경 이야기 :
적은 마우스 (스크롤 이벤트 포함)를 전혀 처리 할 수 없습니다.
터미널 에뮬레이터는 소위 대체 화면을 지원합니다. 이것은 대부분의 전체 화면 앱이 지속 시간 동안 전환하고 이전 콘텐츠가 "복원"되는 정상적인 화면으로 다시 전환하며 스크롤 백 버퍼가 없습니다. -X
그렇지 않은 경우를 제외하고는이 대체 화면으로 덜 전환합니다 .
많은 터미널 에뮬레이터는 대체 화면 모드에 있고 내부에서 실행중인 응용 프로그램이 마우스 이벤트에 관심이없는 경우 스크롤을 Up 또는 Down 키 누르기 이벤트로 변환하는 것이 합리적이라는 것을 알았습니다. 그것은 해킹이며 일반 화면 (예 : 셸 프롬프트에서 어떤 일이 일어날 지 상상해보십시오) 또는 응용 프로그램이 마우스를 처리하려고 할 때 유해합니다 (실제로 마우스 이벤트를보아야 함). 그러나 기본적 으로이 두 가지 중 어느 것도 실행하지 않기 less
때문에이 해킹이 시작됩니다 (터미널 에뮬레이터를 지원하고 \e[?1007h
vs 를 통해 활성화됩니다) .\e[?1007l
). 스크롤 이벤트는 터미널 에뮬레이터에 의해 Up 및 Down 키 누르기로 변환되며 실제 키 누르기와 구별 할 수 없습니다. 마우스 스크롤 이벤트를 수신하지 않습니다. Up 및 Down 키 누르기가 표시됩니다.
대체 화면으로 전환하면 터미널의 핵이 스크롤 이벤트를 키 누르기로 변환하지 않고 종료하면 일반 화면이 복원됩니다. 또는 그렇지 않으면 마법의 스크롤 이벤트를 키 누르기로 변환 할 수 없으며 스크롤 이벤트를 이해하지 못합니다.
그래서 무엇을 할 수 있습니까? 글쎄, 마우스 지원을 적게 구현하고 스크롤 이벤트 자체를 처리하게하고 (기본이 아닌 클릭 또는 복사-붙여 넣기 동작으로 작동) 다른 이상한 해킹을 구현하십시오. 종료시, 일반 화면으로 되 돌린 후 less
마지막으로 할 수 있음 종료하기 전에 표시된 모든 내용을 반복하여 한 화면의 내용을 인쇄하십시오.
실제로는 기본적으로 다음과 같이 요약됩니다. 죄송합니다. 잊어 버리십시오.