Làm cách nào để tăng kích thước bộ đệm cuộn trong tmux?


328

Làm cách nào để tăng kích thước bộ đệm cuộn trong tmux?

Nếu tôi vào chế độ sao chép, số lượng dòng cuộn ngược có sẵn (hiển thị ở góc trên bên phải) luôn ở dưới 2000. Tôi đã cố gắng tìm danh sách tất cả các lệnh tmux, nhưng tôi không thể tìm thấy bất cứ điều gì về kích thước cuộn lại. Đối với tất cả tôi thấy screenlệnh để thiết lập tùy chọn đó không hoạt động tmux.

Sử dụng tmux1.8, Ubuntu 12.04 LTS, konsolehoặc gnome-terminal.

Câu trả lời:


428

Giới hạn lịch sử là một thuộc tính khung được cố định tại thời điểm tạo khung và không thể thay đổi cho các bảng hiện có . Giá trị được lấy từ history-limittùy chọn phiên (giá trị mặc định là 2000).

Để tạo một khung có giá trị khác, bạn sẽ cần đặt history-limittùy chọn thích hợp trước khi tạo khung.

Để thiết lập một mặc định khác, bạn có thể đặt một dòng như sau trong .tmux.conftệp của mình :

set-option -g history-limit 3000

Lưu ý: Hãy cẩn thận đặt một giá trị mặc định rất lớn, nó có thể dễ dàng tiêu thụ nhiều RAM nếu bạn tạo nhiều tấm.

Đối với một khung mới (hoặc khung ban đầu trong một cửa sổ mới) trong một phiên hiện có, bạn có thể đặt phiên đó history-limit. Bạn có thể sử dụng một lệnh như thế này (từ shell):

tmux set-option history-limit 5000 \; new-window

Đối với (khung ban đầu của cửa sổ ban đầu trong) một phiên mới, bạn sẽ cần phải thiết lập toàn cầu con history-limittrước khi tạo phiên:

tmux set-option -g history-limit 5000 \; new-session

Lưu ý: Nếu bạn không đặt lại history-limitgiá trị, thì giá trị mới cũng sẽ được sử dụng cho các cửa sổ / cửa sổ / phiên khác được tạo trong tương lai; hiện tại không có cách trực tiếp nào để tạo một cửa sổ / cửa sổ / phiên mới duy nhất với giới hạn cụ thể của riêng nó mà không (ít nhất là tạm thời) thay đổi history-limit(mặc dù show-option(đặc biệt là trong 1.7 trở lên) có thể giúp lấy ra giá trị hiện tại để bạn khôi phục lại sau ).


26
Nếu một "dòng" thực sự chỉ là các ký tự bên trong nó, thì chúng ta có thể giả sử 128 byte là kích thước dòng hợp lý trong bộ nhớ. Nếu tôi sẵn sàng cam kết 32 MB để cuộn lại cho một khung duy nhất (phù hợp với tôi, tôi không sử dụng nhiều bảng), thì tôi có thể tăng giới hạn lịch sử của mình lên khoảng 2 ** (25 - 7) = 256K250 nghìn dòng.
phs

8
Tôi đã kết thúc việc giải quyết vàoset-option -g history-limit 50000
phs

2
Của tôi dường như chỉ lên đến khoảng 4700 .. mặc dù một khung mới. tmux 1.9
wuxmedia

4
Đối với những người bạn không biết tìm tệp .tmux.conf ở đâu, bạn chỉ cần tạo một tệp mới tại ~ / .tmux.conf, sau đó thêm dòng này vào tập tin tùy chọn tập tin -g lịch sử giới hạn 50000
C.Lee

1
Một chút hickup tôi chạy vào. Tất cả các phiên tmux phải được đóng lại để thay đổi này có hiệu lực. Đến từ màn hình GNU Tôi giả sử mỗi phiên màn hình mới sẽ lấy nguồn ~ / .tmux.conf nhưng thực tế không phải vậy. Chỉ khi tất cả các phiên tmux được đóng và một phiên mới được mở thì thay đổi đối với ~ / .tmux.conf mới có hiệu lực.
rudolph9

24

Mở tệp cấu hình tmux bằng lệnh sau:

vim ~/.tmux.conf

Trong tệp cấu hình, thêm dòng sau:

set -g history-limit 5000

Đăng xuất và đăng nhập lại, bắt đầu một cửa sổ tmux mới và giới hạn của bạn là 5000 ngay bây giờ.


3
Không cần thiết phải đăng xuất và đăng nhập. Bạn chỉ cần thoát hoàn toàn máy chủ tmux hoặc đảm bảo nguồn của bạn ~/.tmux.conftrong mỗi phiên (và sau đó khởi chạy các cửa sổ mới trong các phiên đó và đóng bất kỳ cửa sổ cũ nào).
henrebotha

3

Điều này được xây dựng dựa trên câu trả lời của ntc2 và Chris Johnsen. Tôi đang sử dụng điều này bất cứ khi nào tôi muốn tạo một phiên mới với giới hạn lịch sử tùy chỉnh. Tôi muốn có một cách để tạo các phiên với cuộn ngược giới hạn mà không thay đổi vĩnh viễn giới hạn lịch sử của tôi cho các phiên trong tương lai.

tmux set-option -g history-limit 100 \; new-session -s mysessionname \; set-option -g history-limit 2000

Điều này hoạt động cho dù có hoặc không có phiên. Sau khi đặt giới hạn lịch sử cho phiên mới, nó sẽ đặt lại về mặc định đối với tôi là 2000.

Tôi đã tạo ra một kịch bản bash thực thi làm cho điều này hữu ích hơn một chút. Tham số thứ 1 được truyền cho tập lệnh đặt giới hạn lịch sử cho phiên mới và tham số thứ 2 đặt tên phiên:

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
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.