Gnu 화면에 있을 때 수평(또는 수직)으로 분할하고 새 창에서 터미널 세션을 시작할 수 있습니다.영역. 해당 화면에서 분리했다가 Ctrl-a,d
복원하면 이제 전체 창에서 분할된 두 번째 영역만 볼 수 있게 됩니다. exit
두 번째 영역을 입력하면 첫 번째 세션이 나타나고 exit
다시 입력하여 실제로 화면 세션을 닫을 수 있기 때문에 첫 번째 영역이 여전히 어딘가에 존재한다는 것을 알고 있습니다 .
여러 영역으로 분할된 화면을 복원하고 분할된 영역을 모두 동시에 표시하려면 어떻게 해야 합니까?
이 문제를 재현하는 간단한 방법:
$ screen -S splitresume
$ export PS1="region 1$ "
<Ctrl-a |>, <Ctrl-a TAB>, <Ctrl-a c>
$ export PS1="region 2$ "
<Ctrl-a d>
$ screen -r splitresume
적어도 내 시스템 에서는 screen -r splitresume
. region 2$
위에서 말했듯이 해당 터미널 세션을 종료하면 이제 PS1이 있는 터미널을 볼 수 있습니다 regsion 1$
. 나는 눈에 보이는 공간의 영역을 복원하고 다시 그릴 수 있기를 원합니다.
편집: 명령을 사용해 보았지만 resize
화면의 응답은 단지 불평입니다: resize: need more than one region
.
답변1
바라보다GNU 화면 FAQ
모니터를 분할한 후 분리하면 화면이 분할되는 것을 잊어버리게 됩니다.
(암묵적인 질문은 "분리된 창을 분리된 상태로 어떻게 유지합니까?"입니다.)
간단히 말해서, 대답은 할 수 없다는 것입니다. 더 긴 대답은 가짜로 만들 수 있다는 것입니다. (참고: 아마도 4.1.0으로 번호가 매겨진 다음 화면 버전에서는 디스플레이 레이아웃을 기억할 수 있을 것입니다.)
분할은 디스플레이의 속성입니다. 스크린 세션을 관리하는 프로세스는 세션에 대해 실제로 알지 못하며 세션을 표시하는 개별 프로세스만 알고 있습니다. 따라서 스크린 세션은 분할에 대해 모르기 때문에 분할을 기억할 수 없으며 일단 분리되면 분할에 대해 알고 있는 프로세스가 종료됩니다.
해킹은 중첩된 스크린 세션을 사용하는 것입니다. 세션을 시작하고 자주 사용하지 않을 일부 이스케이프 시퀀스를 제공하십시오(또는 이스케이프 문자를 완전히 비활성화하십시오). 일반적으로 사용되는 분리 키 시퀀스를 이 스크린 세션에 바인딩하세요. 이제 홈 화면 세션을 시작하거나 연결하세요. 모든 작업은 세션 내에서 완료되며 디스플레이를 분할할 수 있습니다. 그러나 분리하면 외부 세션도 분리되므로 내부 세션의 분할은 유지됩니다.
기본 이스케이프 문자 Ca를 사용한다고 가정하면 대체 screenrc에는 다음이 포함되어야 합니다.
escape ""
bindkey ^ad detach