내가 정말 좋아하는 emacs 버퍼(even ansi-term
및 )의 기능 중 하나 shell
는 화면의 위쪽 절반에 이전 출력이 여전히 포함되도록 터미널의 현재 줄을 "중앙에" 배치하는 기능입니다.eshell
C-l
표준(표준 이름이 무엇인지 확실하지 않음) 터미널을 C-l
누르면 현재 행이 창 상단으로 이동하는 것 같습니다. 현재 행을 화면 중앙으로 이동하는 일반적인 방법이 있습니까? 그렇지 않은 경우 iterm2, 터미널 또는 OS X로 포팅된 일부 터미널 에뮬레이터에 대해 특별히 이를 수행할 수 있는 방법이 있습니까?
답변1
대부분의 터미널 에뮬레이터는 이 작업을 "수행"할 수 있지만 몇 가지 작업이 필요합니다.
- 이동하려는 행이 화면 하단에 있다고 가정해 보겠습니다.
- 행을 위로 이동하려면 맨 아래 행에 이스케이프 시퀀스를 전송하여 행을 스크롤(또는 "인덱스")합니다. 그런 다음 스크롤하려는 행 수만큼 행을 위로 이동합니다.
- 스크롤하면 화면의 모든 행이 이동됩니다. 스크롤 영역을 설정하여 이동되는 행 수를 제한할 수 있습니다. 이렇게 하면 화면 상단의 선이 사라지는 것을 방지할 수 있습니다. 그러나 선의 원래 위치와 대상 사이의 선은 사라집니다.
이렇게 하면 선이 위쪽으로만 이동합니다. 마찬가지로 역색인을 사용하여 한 행 아래로 이동할 수 있습니다. 그건 그렇고, 이러한 작업은기준ECMA-48이지만 xterm과 유사합니다(DEC vt100 기반). ansi-term
스크롤/인덱싱을 지원합니다.
결국, 그것은 단지 위 또는 아래입니다. 줄을 왼쪽/오른쪽으로 이동하려면 커서가 줄의 시작 부분에 있을 때 문자를 삽입하거나 삭제하는 이스케이프 시퀀스를 보낼 수 있습니다.
이러한 이스케이프 시퀀스는 terminfo(5)
매뉴얼 페이지에 문서화되어 있습니다. 나는 이미 다음 사항을 언급했습니다.
csr
(스크롤 영역 설정)
ind
(색인)
rin
(역방향 색인)
cup
(커서 위치)
ich
(문자 삽입)
dch
(문자 삭제)
추가 자료: