Sử dụng thanh cuộn thiết bị đầu cuối với tmux


41

Tôi biết cách cuộn trong tmux bằng bàn phím, nhưng tôi nhận thấy rằng có vẻ như có một cách để sử dụng thanh cuộn thiết bị đầu cuối với GNU Screen . Điều này có thể được thực hiện với tmux?


6
Bạn thực sự không thể sử dụng thanh cuộn thiết bị đầu cuối với Màn hình GNU. Thanh cuộn sẽ không thực sự truy cập vào bộ đệm cuộn của Màn hình, nhưng của thiết bị đầu cuối, có nghĩa là các dòng cuộn từ các phiên Màn hình khác nhau bị lẫn lộn.
ak2

@ ak2 Nỗi buồn ... nhưng cảm ơn vì thông tin!
Jeff

2
iTerm2 có một số kế hoạch trong tương lai để [tích hợp với tmux ] ( code.google.com/p/iterm2/wiki/TmuxIntegration ). Việc tích hợp như vậy dường như có thể bao gồm việc sử dụng thanh cuộn gốc để xembộ đệm lịch sử tmux .
Chris Johnsen

Câu trả lời:


42

Điều này có thể có trong cả màn hình GNU và tmux và cách giải quyết tương tự nhau: để đánh lừa các bộ ghép kênh nghĩ rằng thiết bị đầu cuối không có chế độ "màn hình thay thế" (như được sử dụng bởi pico, mutt, v.v.). Điều này được thực hiện bằng cách đặt các lệnh termcap cho phiên.

Đối với màn hình GNU, hãy đặt cái này vào .screenrc:

termcapinfo xterm*|xs|rxvt|terminal ti@:te@

và đối với tmux, hãy thêm phần này vào .tmux.conf:

set -ga terminal-overrides ',xterm*:smcup@:rmcup@'

Phần ' xterm*' của lệnh nên được đặt thành bất cứ thứ gì trình giả lập thiết bị đầu cuối của bạn được khai báo là. Một số hình thức của xterm là một dự đoán tốt, nhưng bạn có thể kiểm tra của bạn trên hầu hết các hệ thống sane * nix với:

echo $TERM

và điều này thường có thể được đặt trong các tùy chọn của chương trình thiết bị đầu cuối của bạn (ví dụ: Đối với Apple Terminal.app, nó nằm trong Cài đặt-> Hồ sơ-> Nâng cao (hoặc Cài đặt-> Nâng cao-> Giả lập trước yosemite) "Khai báo thiết bị đầu cuối dưới dạng".

Kết quả cuối cùng là tràn tràn kết thúc trong bộ đệm cuộn của thiết bị đầu cuối thay vì biến mất. Tất nhiên, vì đây là một bộ đệm tĩnh, mọi thứ sẽ trở nên lộn xộn khi bạn chuyển đổi giữa các cửa sổ màn hình hoặc tmux, nhưng điều này rất hữu ích để nhanh chóng bật lên để xem đầu ra của lslệnh hoặc tương tự.


2
Ngoài ra, chỉ cần xem superuser.com/questions/253414/ , hoạt động như được mô tả như là một thay thế khác.
Doug J

2
Giải pháp: gist.github.com/1297707
Nick

1
@Nick - Lưu ý rằng bạn đang giải quyết một vấn đề khác: thêm hỗ trợ chuột vào tmux. Có thể là một giải pháp tốt hơn cho bạn, nhưng nó khác với việc sử dụng bộ đệm cuộn ngược. Miễn là trình giả lập thiết bị đầu cuối của bạn được xác định chính xác, phần trên sẽ hoạt động trên một y * nix, bao gồm OSX
Doug J

1
Có vẻ như đó là một tcsh tích hợp. Trên bash bạn có thể sử dụngecho $TERM
Doug J

1
"tràn" này hoạt động nhưng hiển thị một số ký tự unicode kỳ lạ khi thoát khỏi tmux: stackoverflow.com/q/31790939/2668831
Louis Maddox

5

Để kích hoạt tính năng di chuyển, bạn có thể kích hoạt được xây dựng trong chế độ chuột trong của bạn ~/.tmux.confnhư sau:

set -g mode-mouse on
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.