화면을 지우지 않고“덜”나가는 방법이 있습니까? 방법은 종료 한 다음 사용하는 것 more입니다.

상대적으로 자주, 나는 내 자신이 종료하고 less싶지만 다시보고자하는 것을 화면에 남겨 두었다 . 이것을 할 수있는 방법이 있습니까? 해결 방법?

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

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



답변

이것은 실제로 사용중인 터미널 에뮬레이터의 기능입니다 (xterm, gnome-terminal, konsole, screen). 같은 프로그램 때 대체 화면 또는 altscreen이 시작됩니다 less또는이 vim호출됩니다. 이 altscreen에는 기록 버퍼가 없으며 프로그램을 종료하면 즉시 종료되어 이전 창 내용 기록 및 배치를 복원하는 원래 화면으로 돌아갑니다.

less“-X”인수를 전달하여 altscreen에서 시작 되지 않도록 할 수 있습니다 .

less -X /path/to/some/file

“-X”를 환경 변수로 전달할 수도 있습니다. 따라서를 사용하는 경우 다음 bash위치에 배치하십시오 ~/.bashrc.

export LESS="-X"

그러나 이로 인해 termcap (터미널 기능) 초기화 및 초기화 해제가 비활성화되어 사용할 때 다른보기 less가 나타나지 않을 수 있습니다.

다른 옵션은 screen에서 옵션 을 사용 하고 설정하는 altscreen off~/.screenrc입니다. less화면을 지우지 않고 색상 서식을 유지해야합니다. 아마도 tmux같은 옵션이있을 것 입니다.

블로그 항목 은 문제를 설명하고 gnome-terminal다양한 성공을위한 다양한 솔루션을 제공합니다 .


답변

George의 솔루션은 나를 위해 작동하지 않았지만이 솔루션은 그의 답변에 링크 된 블로그 항목 에서 수행되었습니다.

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

  2. ~ / xterm-noclear.src 편집

    • 두 번째 줄의 이름을 ‘xterm’에서 ‘xterm-noclear’로 바꾸십시오.

    • ‘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 (이제 이하의 동작을 확인하고 만족하는 경우 ~ / .profile에 내보내기 지시문을 추가하십시오)

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


답변

내가 이것을 기억하는 방법은 less -SEX출력을 화면에 덤프해야하지만 줄 바꿈을 원하지 않는 경우입니다. 예를 들면 docker ps | less -SEX다음과 같습니다.

  • -S
    • 줄 바꿈 대신 스크롤
    • 당신이 드롭하면 -E, 화면을 스크롤하려면 화살표 키를 사용할 수 있습니다
  • -E
    • EOF에 도달하면 종료
  • -X
    • 용어 교환 / 블랭킹 방지
    • “메모리”부분은 S와 E가 무엇을하는지 알고 있으므로 이것이 다른 부분이어야합니다. (이 명령을 메모리에 커밋하는 이유는 래핑되지 않은 출력을 덤프 (대화식 세션에 들어 가지 않음)하려는 것입니다.

당신이 기억할 수 없다면, 당신 less -SEX에게 많은 희망이 없습니다. 추측 할 때마다 다시 Google로 연결하십시오.


답변