터미널 에뮬레이터에서 입력 커서가 항상 위에서 아래로 이동하는 이유는 무엇입니까?

터미널 에뮬레이터에서 입력 커서가 항상 위에서 아래로 이동하는 이유는 무엇입니까?

터미널 커서는 터미널 상단에서 시작하여 명령 수에 관계없이 최종적으로 하단에 도달할 때까지 더 많은 명령이 실행됨에 따라 천천히 아래로 이동하는 것으로 나타났습니다. 잠시 후 퍼지를 실행하면 다시 맨 위로 흔들립니다. 이 동작은 내 시스템의 모든 터미널과 일치하는 것 같습니다.

이 행동의 역사가 있습니까? 다르게 동작하는 터미널 에뮬레이터가 있습니까?

더 나은 인체공학을 위해서는 논쟁이 필요하다고 생각합니다. 예를 들어, 목이 아래쪽으로 늘어나는 것을 줄이기 위해 커서를 위쪽에 두는 것은 어떨까요? 아니면 사용자가 명령 실행 전체에서 커서 이동을 추적할 필요가 없도록 입력 커서를 정적으로 만드는 것은 어떨까요?

답변1

이것역사그게 다야초기 컴퓨터 I/O 장치는 텔레타이프라이터였습니다.. 이것은 전기적으로 연결되어 눌려진 키가 종이에 인쇄될 뿐만 아니라 다른 장치(반드시 컴퓨터일 필요는 없음)로 정보를 전송하여 타자기에 별도의 작업 없이 종이에 문자를 인쇄하도록 지시할 수 있는 타자기였습니다. 단추.

이는 다음을 포함하여 많은 결과를 가져옵니다.

  • 입력과 출력은 생성된 순서대로 동일한 "기록" 매체에 결합됩니다.
  • 어떤 경우에는 입력 장치가 자체 기록을 생성할 수 있습니다(참조:stty echo);
  • 이 질문과 가장 관련이 있는 것은 현재 우리가 사용하는 시스템이 주로 미국과 서유럽에서 개발된 관행을 기반으로 하기 때문에 출력은 종이의 왼쪽 상단 모서리 또는 사용된 모든 표현에서 시작된다는 것입니다.

화면을 추가할 때(반드시 그럴 필요는 없음)바꾸다종이), 무한히 스크롤되는 접힌 종이의 뷰포트로 사용됩니다. 오래된 습관은 쉽게 사라지지 않으며 이는 오늘날까지 터미널 에뮬레이터(정의상 회귀)에서 계속됩니다.

유리 터미널을 포함한 다른 입력 모델도 존재합니다. 예를 들면 다음과 같습니다.IBM 3270터미널은 블록 지향적이며 일반적으로 정보를 스크롤하는 대신 전체 화면 정보를 관리하는 응용 프로그램과 함께 사용됩니다.

셸은 컴퓨터와 상호 작용하는 유일한 방법이 아니며 일부 프로그램은 이를 다른 모델로 보완합니다. 예를 들어 다음과 같은 "정통적인 파일 관리자"가 있습니다.자정 사령관(에서 영감을 받다노턴 사령관, DOS PC의 경우) 일반적으로 화면 하단의 고정 위치에 명령줄 프롬프트가 있으며 별도의 보기에서 출력에 대한 액세스를 제공합니다.

Midnight Commander 명령줄

Midnight Commander의 출력 보기

답변2

그것이 가장 자연스러운 방법이라고 믿으세요. 적어도 왼쪽에서 오른쪽으로, 위에서 아래로 읽는 사람들에게는 그렇습니다.

터미널은 영원한 책/일지라고 생각할 수 있습니다. 물론 반대 방향으로 배열할 수도 있지만 이는 몇 가지 문제를 일으킬 수 있습니다. 하나는 스트림을 자주 사용하는 것입니다. 또한 버퍼/뷰를 지속적으로 재정렬해야 합니다.

여러 줄 출력의 한 가지 문제점은 출력 끝이 보기 아래에 있을 수 있으므로 명령을 보려면 아래로 스크롤해야 한다는 것입니다. 물론 그 반대라고 주장할 수도 있습니다. 이제 사람들은 맨 위를 보려면 스크롤해야 하지만 평균적으로 사람들은 최종 출력에 더 관심이 있다고 믿습니다.

포커스는 맨 아래에 있습니다. 맨 아래에 마지막 작업이 있었기 때문입니다.

명령줄이 맨 위에 있기 때문에 초점을 위에서 아래로 지속적으로 이동해야 합니다. 그렇다고 말해보세요 tail -n 10 some_file. 이 10줄을 읽은 다음 초점을 다시 맨 위로 이동합니다.

일정 간격으로 정보를 인쇄하는 명령입니다. 무엇을 해야 합니까? 인쇄 - 이 섹션을 읽어보세요. 초점을 위로 이동하고, 마지막 인쇄가 시작된 위치까지 읽고, 초점을 위로 이동하고, 반복합니다.

나는 위에서 아래로 읽는 것보다 이런 식으로 무언가를 놓치는 것이 더 쉽다고 믿습니다.

즉, 명령을 실행하면 10,000개의 라인이 생성됩니다. 최종 결과를 보려면 아래로 스크롤해야 합니까? 아니면 프로그램을 컴파일합니다. 출력을 어떻게 정렬해야 합니까?

터미널 IRC 클라이언트(irssi, weechat 등)와 같이 정적 "명령줄"을 사용하는 프로그램이 있습니다. 여기에서는 (보통) 맨 아래에 명령줄이 있고 그 위에는 위에서 아래로 로깅이 있습니다.

실제로 화면이 가득 차면 터미널은 동일하지만 터미널은 입력 라인 높이에 의해 제한되지 않습니다.

그렇다니까

  1. 지금까지 가장 간단한 접근 방식(구현 측면)은 다음과 같습니다.
  2. 대부분의 사람들에게(내 생각에는) 이것이 정보를 읽는 가장 자연스러운 방법입니다.

관련 정보