쉘 터미널에서는,
echo $TERM --- prints xterm
이제 vi somedoc
이 작업을 수행 하면 exit
쉘 화면에서 vi 내용이 사라지고 이전에 쉘이 실행한 명령이 표시됩니다. 여태까지는 그런대로 잘됐다.
이제 ssh 세션을 백그라운드에 두고 screen ssh localhost
실행합니다 .Ctrl-A, c
echo $TERM --- prints screen
이제 vi somedoc
이 작업을 수행 하면 exit
vi 버퍼의 내용이 전체 화면을 차지하고 bash 쉘 프롬프트는 화면의 마지막 줄로 이동합니다. 이로 인해 clear
vim에 들어가고 종료된 후에 터미널이 필요하므로 더 이상 터미널을 사용할 수 없게 됩니다 .
export TERM=xterm
vi를 종료하면 터미널의 버퍼 내용이 지워지는지 확인하기 위해 이 작업을 시도했지만 효과가 없었습니다.
답변1
이것은 대체 화면이라고 불리는 xterm의 기능입니다. 응용 프로그램이 대체 화면을 사용하는지 여부는 이스케이프 시퀀스로 제어됩니다. 일반적으로 이는 터미널의 초기화 및 재설정 시퀀스( terminfo 및 termcap smcup
도 포함 )와 결합됩니다.rmcup
ti
te
xterm 프로그램(xterm을 에뮬레이트할 수 있는 다른 프로그램과 달리)에는 titeInhibit
대체 화면으로의 전환과 대체 화면 전환을 비활성화하도록 지시하는 X 리소스 설정(termcap 기능의 이름을 따서 명명됨)이 있습니다. 그러나 필요에 따라 전환되도록 terminfo 설명을 선택(또는 수정)하여 이를 제어할 수 있을 것입니다.
자세한 내용은 xterm FAQ를 참조하세요.vi를 실행할 때 화면이 지워지지 않는 이유는 무엇입니까?