ed가 파일의 첫 번째 줄이 아닌 마지막 줄에서 시작되는 이유는 무엇입니까?
ed의 동작 대부분은 대부분의 동작이 프린터와 상호 작용하기 위한 것임을 기억할 때 의미가 있지만 이것은 그렇지 않습니다. 나는 그것이 전체 파일을 메모리로 읽는다고 믿기 때문에 IO 조회도 아닙니다.
답변1
일반적으로 Ed에서 명령을 실행한 후 커서(즉, 현재 줄)는 명령의 영향을 받는 마지막 줄에 배치됩니다. 이는 ed가 시작되고 파일이 로드될 때 이 e
명령 과 동일합니다. 이 e
명령은 전체 버퍼에 영향을 미치므로 현재 줄을 마지막 줄로 설정합니다.
마지막 줄에 커서를 놓는 것은 텍스트를 삽입하거나 로드한 후 가장 유용한 작업입니다. 사용자가 다음으로 하는 일은 종종 그 뒤에 더 많은 텍스트를 쓰는 것입니다. 따라서 실제로 파일을 로드하는 것은 커서를 끝에 놓는 일반적인 규칙을 따르는 것이 아니라 커서를 끝에 놓는 일반적인 규칙을 증명하는 것입니다.
최신 편집자는 커서를 처음에 놓거나 마지막 위치를 기억합니다. Ed는 마지막 위치를 기억할 만큼 충분히 발전하지 않았습니다. 사용자가 파일에 대해 일종의 전역 편집 작업을 수행하려는 경우 처음에 커서를 두는 것이 합리적이지만 사용자가 중단한 부분부터 계속 쓰기를 원하는 경우에는 그렇지 않습니다. 이는 마지막에 발생할 가능성이 가장 높습니다. Ed는 더 복잡한 작업보다 가장 간단한 작업(계속 쓰기)을 우선시하는데, 이는 좋은 사용자 인터페이스 디자인입니다.
전 애인은 이런 행동을 유지했습니다. Vi가 애초에 왜 커서를 파일의 시작 부분에 두는지 모르겠습니다.