화면을 지우지 않고 "less"를 종료하는 방법이 있나요?

화면을 지우지 않고 "less"를 종료하는 방법이 있나요?

나는 그만두고 싶지만 less화면에서 본 것을 되돌아보게 남겨두는 경우가 비교적 자주 있었습니다. 이를 수행할 수 있는 방법이 있습니까? 해결책?

(현재 해결 방법은 종료한 다음 를 사용하는 것입니다 . 따라서 그보다 더 나은 해결 방법은 환영합니다. 이상적으로 는 쉘 설정이나 일부 스크립팅을 통해 more일단 들어가면 사용할 수 있을 것입니다 .)less

내 데스크탑은 OSX이지만 RHEL과 Ubuntu 서버를 사용합니다.

답변1

이는 실제로 사용 중인 터미널 에뮬레이터(xterm, gnome-terminal, konsole, screen)의 기능입니다. 프로그램을 호출 less하거나 대기할 때 대체 화면 또는 대체 화면이 실행됩니다 vim. 이 대체 화면에는 기록 버퍼가 없으며 프로그램을 종료하면 즉시 종료되어 원래 화면으로 다시 전환되므로 이전 창 내용 기록과 위치가 복원됩니다.

less"-X" 인수를 전달하면 대체 화면에서 실행되지 않도록 할 수 있습니다 .

less -X /path/to/some/file

"-X"를 환경 변수로 전달할 수도 있습니다. 따라서 를 사용하는 경우 bash다음을 입력하세요 ~/.bashrc.

export LESS="-X"

그러나 이렇게 하면 termcap(터미널 기능) 초기화 및 초기화 해제가 비활성화되므로 less이를 사용할 때 다른 보기가 닫힌 것처럼 보일 수 있습니다.

screen또 다른 옵션은 altscreen off에서 이 작업을 수행하는 것입니다 ~/.screenrc. less그러면 화면이 지워지지 않고 색상 형식이 유지됩니다. 아마도 tmux같은 선택이 있을 것이다.

이것블로그 항목문제를 설명하고 다양한 성공 사례를 통해 몇 가지 솔루션을 제공합니다 gnome-terminal.

답변2

less -SEX출력을 화면에 덤프해야 했지만 줄바꿈을 원하지 않았던 때였 던 것으로 기억합니다 . 예를 들어 docker ps | less -SEX다음과 같이 작동합니다.

  • -S
    • 래핑 대신 스크롤
    • 드롭한 경우 -E화살표 키를 사용하여 스크롤할 수 있습니다.
  • -E
    • EOF에 도달하면 종료
  • -X
    • 용어 교환/공백 방지
    • "기억" 부분은 S와 E가 무엇을 하는지 알고 있다는 것이므로 다른 부분임에 틀림없습니다. (이 명령을 메모리에 커밋하는 이유는 래핑되지 않은 출력을 덤프(대화형 세션에 들어가는 대신)하고 싶기 때문입니다.

기억하지 못한다면 less -SEX희망이 별로 없습니다. 내가 추측할 때마다 다시 Google에 검색해 보세요.

답변3

George의 솔루션은 나에게 효과가 없었지만 이 솔루션은 효과가 있었습니다(from블로그 항목그의 답변에 연결되어 있습니다).

  1. $ infocmp -I xterm > ~/xterm-noclear.src

  2. ~/xterm-noclear.src 편집

    • 두 번째 줄의 이름을 "xterm"에서 "xterm-noclear"로 변경하거나 원하는 대로 변경합니다("xterm-debian"이 있으면 그것도 변경합니다).

    • "smcup" 및 "rmcup" 지시문을 제거합니다(예: "smcup=\E[?1049h," 및 "rmcup=\E[?1049l,")

  3. $ mkdir ~/.terminfo

  4. $ tic ~/xterm-noclear.src(x/xterm-noclear는 ~/.terminfo 디렉토리에 있어야 합니다)

  5. $ export TERM=xterm-noclear(이제 less 의 동작을 확인하고 만족스러우면 ~/.profile에 내보내기 지시문 줄을 추가하세요)

(@jah가 편집을 거부한 George의 답변에서 직접 이 지침을 복사했습니다.)

답변4

더 쉬운 방법이 있습니다. "cat" 명령에 명령을 전달하기만 하면 됩니다.

less blah.txt|cat 

"less"뿐만 아니라 출력을 인쇄하기 위해 "새" 터미널을 생성하는 다른 유사한 명령(예: git log)에서도 작동합니다.

관련 정보