터미널에서 가로 스크롤 이미 두 가지 질문을

그래서 나는 이것에 대해 이미 두 가지 질문을 믿습니다. 그들 모두는 그들과 관계가 tail -f있고 따라서 사람들은 “더 적게 사용”이라는 탄젠트 한 대답을합니다.

모든 명령, 모든 명령 등에 필요합니다. 문제는 많은 콘솔 창을 실행해야하며 여러 모니터를 사용하더라도 여전히 축소해야합니다. 결과적으로 거의 모든 출력이 줄 바꿈으로 처리되고 읽기 어색합니다.

제안 된 해결책 중 하나는 echo -ne '\e[?7l'다소 효과적입니다. 이제 문제는 콘솔에 스크롤 막대를 얻는 방법이 있습니까?

우분투 12.10 터미널



답변

당신이 요구하는 것은 무한 너비의 터미널이며 그중 일부가 표시됩니다. 터미널이 전통적으로 작동하는 방식이나 애플리케이션이 터미널을 작동시키는 방식이 아닙니다.

예를 들어, 단말기의 너비가 무한대 인 경우 시각적 응용 프로그램이 화면 중간에 무언가를 표시하려고 할 때 어떻게 작동합니까?

당신이 생각 할 수있는 접근 뭔가 사용 GNU이다 screen(당신은 화면이 큰 단말기의 작은 창을 표시하는 방법을 알 수 있도록 다양한 크기의 여러 단말기에서 화면 세션을 첨부 할 수 있어야하고)와 설정 screen창 뭔가에 폭 화면 너비가 원래 너비라고 생각하도록 시각적 응용 프로그램을 속입니다.

처럼 (내 screen)

c=$COLUMNS # assuming your shell has that variable
screen -X width -w 1000
stty cols "$c"

일부 시각적 응용 프로그램은 잘 작동하지만 일부는 잘 작동하지 않습니다 (상대 위치 지정 또는 터미널 랩핑에 의존 할 때 설치). vim제대로 작동하는 것 같습니다.

그런 다음 붙여 넣기 데이터를 스크롤하고 복사하려면 유일한 옵션은 screen복사 모드 를 사용하는 것 입니다. ( <prefix>])를 누르고 커서 info -f screen -n Movement를 움직입니다 ( 복사 모드 에서의 이동 참조 ).

tmux 비슷한 기능을 가질 수 있습니다.

terminator터미널 에뮬레이터 (자바 기반)는 terminator우분투와 함께 제공 되는 것이 아니며 무한 터미널 너비로도 수행합니다.

  • 줄은 결코 감싸지 않습니다
  • 시각적 응용 프로그램은 화면 너비가 창에 맞는 것이지 무한대가 아니라고 알려줍니다.
  • 또한 screenterminfo 항목이 줄 바꿈을하지 않는다고 주장하므로 응용 프로그램에서이를 인식하고 줄 시작 부분의 BS가 이전 줄의 끝으로 이동하지 않는다는 점에서 위 의 기반 솔루션 보다 더 잘 작동 합니다.

답변

Emacs는 주로 편집기 및 IDE¹이지만 문제와 매우 잘 일치합니다. Emacs 윈도우 내에서 프로그램을 실행할 수 있으며 Emacs는 무한 너비와 높이의 벙어리 터미널에 프로그램을 표시합니다. 커서가 버퍼의 끝에 있으면 프로그램이 출력을 생성 할 때 창이 스크롤됩니다. 커서를 움직이면 출력이 증가함에 따라 창이 그대로 유지됩니다.

Emacs 버퍼에서 쉘을 시작하려면 M-x shell RET(ie Alt+ x shell Return)를 입력하십시오 . 다른 쉘을 시작하려면 C-u M-x shell RET또는 M-1 M-x shell RET을 입력하십시오 . 각 쉘에서 프로그램을 실행하고 원하는대로 여러 창에서 버퍼를 배열 할 수 있습니다.

¹ 때로는 에디터보다 더 나은 OS라고 말하지만, 사용하지 않는 사람들에 의해서만 농담 일뿐입니다.


답변