다시 시작한 후`gnu screen` 레이아웃을 유지하는 방법


13

screen왼쪽에 vim이있는 3 의 분할을 사용 하고 오른쪽에 두 개의 다른 화면이 가로로 분할되었습니다. 화면에서 분리 할 때을 사용하여 레이아웃을 저장할 수 있다는 것을 알고 있습니다 :layout save my_layout_name.

나는 이미 layout autosave on내에서 .screenrc파일,하지만 그건 내 문제에 대한 지원을하지 않습니다.

다른 터미널 세션간에 그리고 PC를 다시 시작한 후에 어떻게 화면 레이아웃을 유지할 수 있습니까? 또는 해결 방법으로 화면을 분할하고 모든 창에서 bash를 설정하고 레이아웃을 저장하는 화면 (매개 변수)을 실행하는 방법이 있습니까?

답변:


13

새 화면의 기본 레이아웃

지역을 관리 한 다음 화면 내에서 코드를 실행하십시오 .

  • 하려면 저장 파일을 현재 레이아웃 .screen_layout:

    rm -f $ HOME / .screen_layout
    screen -X 레이아웃 덤프 .screen_layout
    
  • 레이아웃 저장과 함께 자동로드 되도록하려면 :

    에코 소스 .screen_layout >> $ HOME / .screenrc
    에코 레이아웃 저장 데프 >> $ HOME / .screenrc
    

작동 원리

  1. 입력하십시오 screen.
  2. 화면 읽기 $HOME/.screenrc:
  3. source .screen_layout- 지금 생성 리전 에서 명령 읽고 실행합니다 . $HOME/.screen_layout
  4. layout save def- 분리 할 때 현재 영역 을 레이아웃으로 저장 하여 유지합니다.

layout dump .screen_layout

  • 디렉토리의 파일 에 현재 레이아웃 덤프 ( 추가 )$HOME

screen -X command

  • 현재 화면 세션 command에서 실행합니다 (내부 에서 실행 된 경우). 그때 와 비슷
    ctrla: command

당신은 또한

  • 시작시 저작권 표시 를 비활성화하십시오 .

    echo startup_message off >> $ HOME / .screenrc
  • 스크롤 버퍼 증가 (def. 100)

    echo defscrollback 1000 >> $ HOME / .screenrc
  • 직접 작성 .screen_layout(50 % / 50 % 세로, 2 개의 셸 포함) :

    split -v
    화면 -t s1
    
    초점
    화면 -t s2
    
    초점
    

당신이 올바른지. 이 방법은 명령을 파일에 덤프 한 다음에서 반복하여 화면 레이아웃을 유지합니다 .screenrc. .screen_layout파일마다 실행되는 모든 명령을 편집 할 수 있습니다 screen포함, 실행 layout save default결국. 내가 추가 할 다른 독자 제안 screenfocus.screen_layoutbash는 실행을 얻기 위해 파일을.
randunel

7

Ctrl- a그런 :다음 layout save default 제공된 화면이 최신 버전입니다 (레이아웃 기능 포함) 행운을 빕니다.

업데이트 : 다음 은 IS .screenrc을 읽의 것 파일 변경 사항을 영구적으로 다른 좋은 기능을 추가와 함께.


layout autosave on에서 .screenrc작동하지 않는 이유가 무엇입니까? 그것은 나에게 더 좋을 것입니다.
spinlock

당신 말이 맞아요, 작동하지 않습니다. 그러나 여기에서 .screenrc를 테스트했습니다 : gist.github.com/joaopizani/2718397 및 작동합니다.
Mir Dunaev

2

" layout autosave on "은 .screenrc에서 명시 적으로 명명 된 레이아웃에 대해서만 작동합니다.

즉, 일부 레이아웃을 ABC로 지정한 경우 화면 세션 내에서 해당 레이아웃으로 전환하고 분리하면이 마지막 레이아웃은 세션이 재개 된 후에 복원됩니다.

구성 파일에서 레이아웃을 지정하지 않은 경우 분리하기 전에 내부 명령 " layout save your_layout_name " 을 실행해야합니다 .

다음은 사전 정의 된 레이아웃 이있는 .screenrc 입니다.

 0 — one (the only region)
 1 — two-v (the screen is splitted vertically into two regions, default layout)
 2 — two-h (the screen is splitted horizontally into two regions)
 3 — three (three regions — two in the upper part of the screen and one underneath)
 4 — four (four regions)

미리 정의 된 레이아웃

화면 내에서 선택하면 이러한 레이아웃은 세션이 다음에 다시 시작될 때까지 분리 할 때 유지됩니다 ( "레이아웃 자동 저장 켜기"명령으로 인해).

자신의 레이아웃을 빌드 한 경우 " layout dump filename "명령 으로 저장해야합니다 . 그런 다음 "filename"파일의 코드를 사용 하여이 .screenrc의 #layouts 섹션에 레이아웃을 추가 할 수 있습니다.

기본적으로 " two-v "레이아웃은 bash가있는 유일한 창으로로드됩니다.


한 레이아웃에서 다른 레이아웃으로 전환하는 방법을 놓쳤지만 키 바인딩이 제거되었다는 의견을 보았습니다. 그냥 fyi-이 키 바인딩은 나 (우분투 16.04)에서 레이아웃을 전환하는 데 효과적입니다. bind ' ' layout next # <- actually means Ctrl-a + Space
Bachi

0

이 출처 에 따르면 screen작동 방식으로 인해 불가능 합니다. 그러나 거기에는 해킹이 있습니다. 기본적으로 다른 화면 내부의 중첩 화면으로 요약되어 매우 편리하지 않을 수 있습니다. (답변은 여기에 있습니다 )

로컬 컴퓨터에서 터미널 분할에 화면을 사용하는 경우 (언급 한 pc 다시 시작을 참조하십시오)라는 터미널 에뮬레이터를 확인하십시오 terminator. 수평 및 수직 터미널 분할 (중첩)도 지원하며 나중에 사용하기 위해 선호하는 레이아웃을 저장할 수 있습니다. 그런 다음 적절한 옵션으로 터미네이터를 실행하면됩니다 terminator -l <name of saved layout>.


다른 화면 안에 화면을 중첩시키는 것을 알고 있지만 다시 시작하면 모든 화면이 종료됩니다. 화면 내부의 화면은 layout추가 되었을 때 해결 되었으므로 귀하의 답변은 질문 외에 구식입니다. terminator그래도 제안에 감사드립니다 .
randunel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.