Làm cách nào để tăng bộ đệm cuộn trong phiên màn hình đang chạy?


237

Hãy nói rằng tôi có một phiên màn hình hiện đang chạy mà tôi đang tương tác thông qua putty. Tôi đã nhận ra rằng bộ đệm cuộn quá nhỏ và muốn tăng nó mà không bắt đầu một phiên màn hình mới.

Có cách nào để làm việc này không?


Chỉ trong trường hợp ai đó muốn tăng bộ đệm cuộn lại khi bắt đầu một phiên mới:screen -h <numlines>
Scz

Câu trả lời:


180

Các trang người đàn ông giải thích rằng bạn có thể vào chế độ dòng lệnh trong một phiên chạy bằng cách gõ Ctrl+ A, :thì việc ban hành scrollback <num>lệnh.


4
Bạn sẽ phải làm cho từng cửa sổ của màn hình hiện tại riêng lẻ.
Matthew Wilcoxson

2
nơi <num>là số dòng scrollback
rakslice

Nếu bạn thấy bạn đạt đến bộ đệm tối đa mặc định không thể hiển thị thêm lịch sử và cài đặt theo scrollback <num>, nó không giúp bạn mở rộng bộ đệm nữa, bạn cần làm lại lệnh cuối cùng để có được toàn bộ bộ đệm lịch sử.
Kamil

362

Nhấn Ctrl-asau đó :và sau đó loại

scrollback 10000

để có được một bộ đệm 10000 dòng, ví dụ.

Bạn cũng có thể đặt số lượng dòng cuộn lại mặc định bằng cách thêm

defscrollback 10000

vào ~/.screenrctập tin của bạn .

Để cuộn (nếu thiết bị đầu cuối của bạn không cho phép bạn theo mặc định), nhấn Ctrl-a ESCvà sau đó cuộn (với thông thường Ctrl-fcho trang tiếp theo hoặc Ctrl-acho trang trước hoặc chỉ bằng bánh xe chuột / hai ngón tay của bạn). Để thoát chế độ cuộn, chỉ cần nhấn ESC.

Một mẹo khác: Ctrl-a ihiển thị cài đặt bộ đệm hiện tại của bạn.


9
+1 cho gợi ý với defscrollback được đặt thành 1024 trong Ubuntu 12.10 (mà tôi phải sử dụng tại nơi làm việc).
erik

2
byobu-screentrên Ubuntu 12.04 dường như đặt chế độ giảm tốc thành 10000
chronospoon

4
Tôi muốn chỉ ra rằng nếu screenrc của bạn mở các điều khoản bổ sung cho bạn, bạn cần đặt defscrollback trước khi các cửa sổ được mở, nếu không họ sẽ chỉ nhận được mặc định 1024
majikman

nó không hoạt động trên máy mac. Tôi đặt startup_message off' and 'defscrollback 5000' into my newly created ~ / .screenrc` và nó đang nhận được dòng đầu tiên, nhưng dòng thứ hai dường như bị bỏ qua.
Ben

9

Có một lượng bộ đệm "mặc định" tối thiểu khi bạn khởi động phiên 'màn hình' trong 'phiên putty' của bạn. Tôi sử dụng màn hình rất nhiều trong công việc của mình, vì vậy tôi có thể nói với bạn rằng bạn sẽ không có sự kết hợp của bộ đệm 'màn hình' & bộ đệm 'putty' trong phiên 'màn hình' của bạn.

Đặt số dòng cuộn ngược mặc định bằng cách thêm defscrollback 10000 vào ~/.screenrctệp của bạn là giải pháp chính xác.

Nhân tiện, tôi sử dụng "defscrollback 200000" trong ./screenrctập tin của mình .


4

Như đã đề cập, chúng tôi có hai cách!

 Cài đặt tương tác trên mỗi màn hình (phiên)

Và nó được thực hiện tương tác! Và có hiệu lực ngay lập tức!

CTRL + Atheo sau :Và chúng ta gõ scrollback 1000000và đánhENTER

Bạn tách ra khỏi màn hình và quay lại! Nó sẽ luôn luôn như vậy.

Bạn mở một màn hình mới! Và giá trị được đặt lại một lần nữa để mặc định! Vì vậy, nó không phải là một thiết lập toàn cầu!

 Và cài đặt mặc định vĩnh viễn

Điều này được thực hiện bằng cách thêm defscrollback 1000000vào .screenrc(tại nhà)

defscrollbackvà không scrollback(def đứng cho mặc định)

Những gì bạn cần biết là nếu tập tin không được tạo! Bạn tạo ra nó !

> cd ~ && vim .screenrc

Và bạn thêm defscrollback 1000000vào nó!

Hoặc trong một lệnh

> echo "defscrollback 1000000" >> .screenrc

(nếu chưa được tạo)

Có hiệu lực

Khi bạn thêm mặc định vào .screenrc! Màn hình đã chạy khi đính kèm lại sẽ không có hiệu lực! Việc .screenrcchạy ở màn hình tạo! Và nó có ý nghĩa! Cũng giống như với một giao diện điều khiển và vỏ khởi động bình thường!

Và tất cả các màn hình mới được tạo sẽ có giá trị đặt!

Kiểm tra kích thước bộ đệm hiệu quả màn hình

Để kiểm tra loại CTRL + Atheo saui

Và kết quả sẽ là

nhập mô tả hình ảnh ở đây

Kích thước bộ đệm quan trọng là số sau dấu +
(trong hình minh họa tôi đặt nó là 1 000 000)

Lưu ý rằng khi bạn thay đổi nó một cách tương tác! Hiệu quả là ngay lập tức và chiếm lấy giá trị mặc định!

Cuộn

CTRL+ Atheo sau ESC(để vào chế độ sao chép).

Sau đó điều hướng với Up, DownhoặcPgUp PgDown

ESCmột lần nữa để thoát khỏi chế độ đó.

(Thông tin thêm: để sao chép nhấn ENTERđể bắt đầu chọn! Sau đó, ENTERmột lần nữa để sao chép! Đơn giản và tuyệt vời)

Bây giờ bộ đệm lớn hơn!

Và đó là tổng hợp cho các chi tiết quan trọng!


Tuyệt vời để biết các bước làm thế nào để cuộn!
skytree

cảm ơn. đã học một mẹo mới để kiểm tra kích thước bộ đệm màn hình bằng cách sử dụng: CTRL + A theo sau là i
alphaGeek

3

CẢNH BÁO: đặt giá trị này quá cao có thể khiến hệ thống của bạn gặp trục trặc đáng kể. Giá trị bạn đặt càng cao, bộ nhớ ảo được phân bổ cho quá trình màn hình khi bắt đầu phiên màn hình càng nhiều. Tôi đặt ~ / .screenrc thành "defscrollback 123456789" và khi tôi khởi tạo một màn hình, toàn bộ hệ thống của tôi bị đóng băng trong 10 phút trước khi quay lại điểm mà tôi có thể giết quá trình màn hình (tiêu tốn 16,6GB của mem VIRT sau đó).


-3

Đối với hậu thế, câu trả lời này không chính xác như ghi nhận của Steven Lu. Rời khỏi văn bản gốc tuy nhiên.

Câu trả lời gốc:

Đối với những người đến thông qua tìm kiếm trên web (vài năm sau) ...

Khi sử dụng màn hình, bộ đệm cuộn lại của bạn là sự kết hợp của cả screenbộ đệm cuộn ngược như hai câu trả lời trước đó đã lưu ý, cũng như bộ đệm cuộn putty của bạn.

Hãy chắc chắn rằng bạn đang tăng CẢ HAI bộ đệm cuộn putty cũng như bộ đệm cuộn màn hình, nếu không, cửa sổ putty của bạn sẽ không cho phép bạn cuộn lại để xem screenlịch sử cuộn lại của bạn (khắc phục bằng cách cuộn trong màn hình với ctrl+a->ctrl+u)

Bạn có thể thay đổi giới hạn cuộn putty của mình trong danh mục "Cửa sổ" trong cài đặt. Thoát và mở lại một phiên putty vào màn hình của bạn sẽ không đóng màn hình của bạn (giả sử bạn chỉ đóng cửa sổ putty và không gõ exit), như OP yêu cầu.

Hy vọng rằng sẽ giúp xác định lý do tại sao việc tăng bộ đệm cuộn lại của màn hình không giải quyết được vấn đề của ai đó.


17
Điều này là không chính xác. Màn hình giữ bộ đệm riêng của nó. Khi bạn cuộn lên với màn hình bằng chế độ sao chép, màn hình đang cung cấp lịch sử của chính màn hình cho bạn qua những lời nguyền. Khi một bộ ghép kênh đầu cuối như màn hình đang được sử dụng, bộ đệm của trình giả lập thiết bị đầu cuối gốc không được sử dụng (thực sự nó có thể hoặc không thể tích lũy rác như một tác dụng phụ)
Steven Lu

điểm tốt, và tôi tin rằng bạn là chính xác ... Tôi tự hỏi liệu tôi có nên xóa câu trả lời của tôi?
Brad P.

Tôi không chắc. Vì điều đó cũng sẽ loại bỏ bình luận của tôi mà mọi người dường như thích.
Steven Lu

3
haha, hoàn toàn đúng Tôi nghĩ rằng tôi sẽ chỉnh sửa nó để lưu ý rằng nó không chính xác, nhưng hãy để lại văn bản gốc
Brad P.

2
Chắc chắn, cảm ơn. Tôi thích chỉ để lại các thay đổi phụ gia trên một trang web như thế này để mọi người có thể thoát khỏi nó mà không bị nhầm lẫn.
Steven Lu
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.