Cách duy trì bố cục `gnu screen` sau khi khởi động lại


13

Tôi đang sử dụng screenchia làm 3 với vim ở bên trái và hai màn hình khác chia theo chiều ngang ở bên phải. Tôi biết rằng khi tách ra khỏi màn hình, tôi có thể lưu bố cục với :layout save my_layout_name.

Tôi đã có layout autosave ontrong .screenrctập tin của mình , nhưng điều đó không giúp gì cho vấn đề của tôi.

Làm cách nào tôi có thể duy trì bố cục màn hình giữa các phiên cuối khác nhau và sau khi khởi động lại máy tính? Hoặc có thể là một cách giải quyết, có cách nào để chạy màn hình (tham số) để phân tách nó, thiết lập bash trên mỗi cửa sổ và lưu bố cục không?

Câu trả lời:


13

Bố cục mặc định cho màn hình mới

Quản lý các vùng của bạn, sau đó thực thi mã bên trong màn hình :

  • Để lưu bố cục hiện tại của bạn vào tệp .screen_layout:

    rm -f $ HOME / .screen_layout
    màn hình -X bố trí kết xuất .screen_layout
    
  • Để làm cho nó tự động tải với tiết kiệm bố trí:

    nguồn echo .screen_layout >> $ HOME / .screenrc
    bố cục tiếng vang lưu def >> $ HOME / .screenrc
    

Làm thế nào nó hoạt động

  1. Bạn gõ screen.
  2. Màn hình đọc $HOME/.screenrc:
  3. source .screen_layout- đọc và thực hiện các lệnh từ $HOME/.screen_layout
    Khu vực hiện được tạo.
  4. layout save def- lưu các khu vực hiện tại làm bố cục để giữ nó khi bạn tách ra.

layout dump .screen_layout

  • Kết xuất ( nối ) bố cục hiện tại vào tập tin trong $HOMEthư mục

screen -X command

  • Chạy commandtrong phiên màn hình hiện tại (nếu được thực hiện bên trong).
    Tương tự như ctrlasau đó: command

Bạn cũng có thể

  • Vô hiệu hóa thông báo bản quyền khi khởi động:

    echo startup_message tắt >> $ HOME / .screenrc
  • Tăng bộ đệm cuộn (def. 100)

    echo defscrollback 1000 >> $ HOME / .screenrc
  • Viết riêng .screen_layout(dọc 50% / 50%, có 2 vỏ):

    chia -v
    màn hình -t s1
    
    tiêu điểm
    màn hình -t s2
    
    tiêu điểm
    

Bạn nói đúng. Phương pháp này duy trì bố cục màn hình bằng cách bỏ các lệnh vào một tệp, sau đó lặp lại chúng trong .screenrc. Tập .screen_layouttin có thể được chỉnh sửa với tất cả các lệnh sẽ được chạy mỗi lần screenchạy, kể cả layout save defaultcuối cùng. Tôi đề nghị các độc giả khác thêm screenvào sau focustrong .screen_layouttệp để chạy bash.
randunel

7

Ctrl- asau :đó layout save default màn hình Cung cấp là phiên bản mới hơn (có tính năng bố trí) Chúc may mắn.

CẬP NHẬT: Đây là tệp .screenrc sẽ thay đổi vĩnh viễn , cùng với việc thêm các tính năng hay khác.


Bất cứ ý tưởng tại sao layout autosave ontrong .screenrckhông làm việc? Đó sẽ là thích hợp hơn với tôi.
spinlock

Bạn nói đúng, nó không hoạt động. Nhưng tôi đã thử nghiệm .screenrc từ đây: gist.github.com/joaopizani/2718397 và nó hoạt động.
Mir Dunaev

2

" Bố cục tự động bật " chỉ hoạt động đối với các bố cục được đặt tên rõ ràng trong .screenrc.

Cụ thể, nếu bạn đã chỉ định một số bố cục là ABC, chuyển sang nó trong phiên Màn hình và tách ra, bố cục cuối cùng này sẽ được khôi phục sau khi phiên được nối lại.

Nếu bạn không chỉ định bất kỳ bố cục nào trong tệp cấu hình, bạn phải chạy lệnh nội bộ " layout save your_layout_name " trước khi tách ra.

Đây là một .screenrc với các bố cục được xác định trước để chọn:

 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)

Bố trí được xác định trước

Sau khi được chọn từ trong Màn hình, các bố cục này được giữ nguyên khi tách ra cho đến khi tiếp tục phiên tiếp theo (do lệnh "tự động bố trí trên").

Nếu bạn đã xây dựng bố cục của riêng mình, nó phải được lưu bằng lệnh " layout dump filename ". Sau đó, bạn có thể sử dụng mã từ tệp "tên tệp" để thêm bố cục của mình trong phần #layouts của .screenrc này để chọn.

Theo mặc định, bố cục " hai-v " được tải với cửa sổ duy nhất có bash.


Điều này thật tuyệt, mặc dù tôi đã bỏ lỡ cách chuyển từ bố cục này sang bố cục khác, sau đó thấy nhận xét rằng ràng buộc khóa đã bị xóa. Chỉ cần fyi - thao tác bấm phím này hoạt động với tôi (Ubuntu 16.04) để chuyển đổi bố cục: bind ' ' layout next # <- actually means Ctrl-a + Space
Bachi

0

Theo nguồn này thì không thể do cách screenlàm việc. Có một hack được cung cấp ở đó, tuy nhiên. Về cơ bản, nó sôi sùng sục xuống màn hình lồng bên trong một màn hình khác, điều này có thể không thuận tiện lắm. (Trả lời tìm thấy ở đây )

Nếu bạn sử dụng màn hình để phân tách thiết bị đầu cuối trên máy cục bộ của mình (mà tôi suy ra từ khởi động lại máy tính đã đề cập), bạn có thể muốn kiểm tra trình giả lập thiết bị đầu cuối được gọi terminator. Nó hỗ trợ phân chia thiết bị đầu cuối ngang và dọc (cũng được lồng) và bạn có thể lưu bố cục yêu thích của mình để sử dụng tiếp. Sau đó, bạn chỉ cần chạy terminator với một tùy chọn thích hợp : terminator -l <name of saved layout>.


Tôi biết việc lồng một màn hình vào trong một màn hình khác, nhưng tất cả các màn hình đều bị chấm dứt khi khởi động lại. Màn hình bên trong màn hình đã được giải quyết khi layoutđược thêm vào, vì vậy câu trả lời của bạn nằm ngoài câu hỏi và lỗi thời. Tôi đánh giá cao terminatorđề nghị mặc dù.
randunel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.