스크롤 휠에 덜 페이저 반응을 일으키고 화면을 지우지 않는 방법


13

$ LESS 환경 변수에서 플래그 를 제거하는 how-to-make-mouse-wheel-scroll-the-less-pager-using-bash-and-gnome-terminal과 같은 답변에 대해 알고 -X있습니다. 그러나 나는이 두 가지 를하고 싶습니다 :

  1. (터미널 창 스크롤 막대 스크롤 반대) (당신에 의해 얻을 수있는 호출기를 스크롤 마우스 휠을 사용하여 제거 -X 에서 $LESS)
  2. 종료 후 호출기의 내용이 화면에 남아있게하십시오 (일반적으로에 추가 -X 하여 수행 $LESS).

케이크를 가지고 먹을 수있는 방법이 있습니까?

답변:


20

less의 소스 코드를 해킹하지 않고는 아닙니다. 약간의 배경 이야기 :

적은 마우스 (스크롤 이벤트 포함)를 전혀 처리 할 수 ​​없습니다.

터미널 에뮬레이터는 소위 대체 화면을 지원합니다. 이것은 대부분의 전체 화면 앱이 지속 시간 동안 전환하고 이전 콘텐츠가 "복원"되는 정상적인 화면으로 다시 전환하며 스크롤 백 버퍼가 없습니다. -X그렇지 않은 경우를 제외하고는이 대체 화면으로 덜 전환합니다 .

많은 터미널 에뮬레이터는 대체 화면 모드에 있고 내부에서 실행중인 응용 프로그램이 마우스 이벤트에 관심이없는 경우 스크롤을 Up 또는 Down 키 누르기 이벤트로 변환하는 것이 합리적이라는 것을 알았습니다. 그것은 해킹이며 일반 화면 (예 : 셸 프롬프트에서 어떤 일이 일어날 지 상상해보십시오) 또는 응용 프로그램이 마우스를 처리하려고 할 때 유해합니다 (실제로 마우스 이벤트를보아야 함). 그러나 기본적 으로이 두 가지 중 어느 것도 실행하지 않기 less때문에이 해킹이 시작됩니다 (터미널 에뮬레이터를 지원하고 \e[?1007hvs 를 통해 활성화됩니다) .\e[?1007l). 스크롤 이벤트는 터미널 에뮬레이터에 의해 Up 및 Down 키 누르기로 변환되며 실제 키 누르기와 구별 할 수 없습니다. 마우스 스크롤 이벤트를 수신하지 않습니다. Up 및 Down 키 누르기가 표시됩니다.

대체 화면으로 전환하면 터미널의 핵이 스크롤 이벤트를 키 누르기로 변환하지 않고 종료하면 일반 화면이 복원됩니다. 또는 그렇지 않으면 마법의 스크롤 이벤트를 키 누르기로 변환 할 수 없으며 스크롤 이벤트를 이해하지 못합니다.

그래서 무엇을 할 수 있습니까? 글쎄, 마우스 지원을 적게 구현하고 스크롤 이벤트 자체를 처리하게하고 (기본이 아닌 클릭 또는 복사-붙여 넣기 동작으로 작동) 다른 이상한 해킹을 구현하십시오. 종료시, 일반 화면으로 되 돌린 후 less마지막으로 할 수 있음 종료하기 전에 표시된 모든 내용을 반복하여 한 화면의 내용을 인쇄하십시오.

실제로는 기본적으로 다음과 같이 요약됩니다. 죄송합니다. 잊어 버리십시오.


0

분명히 530 이하로 업그레이드하면 원하는 기능을 얻을 수 있습니다.

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

버전 487과 버전 530의 차이점은 다음과 같습니다.

-F를 사용하고 파일이 한 화면에 맞는 경우 터미널 초기화 순서를 출력하지 마십시오.

최신 버전의 '최소한'PPA를 찾지 못 했으므로 소스 팩을 다운로드하여 로컬로 빌드하여 설치하십시오.

다음과 같이 git을 구성하십시오.

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

추가 정보 : "-X"없이 "less -F"를 사용하는 방법이 있지만 한 페이지 만 있으면 여전히 출력을 표시합니까?


0

마우스 휠을 사용하여 더 적은 호출기에서 스크롤하는 것은 실제로 불가능하지만 마우스 휠을 사용하여 w3m 호출기로 컨텐츠를 스크롤하는 것이 가능합니다! w3m은 " 탁월한 테이블 / 프레임 지원 기능을 갖춘 WWW 브라우징 가능한 호출기 "이므로 콘솔 웹 브라우저로 사용할 수도 있습니다. 또한 w3m을 콘솔 이미지 뷰어로 사용할 수 있습니다 (모든 터미널 에뮬레이터와 함께 작동하지는 않지만 xterm과 잘 작동합니다). w3m " 은 테이블, 프레임, SSL 연결, 컬러 및 인라인 이미지를 지원 합니다. 매우 유용한 응용 프로그램! 스크린 샷

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.