Cách cuộn lên trong cửa sổ terminal trong khi đầu vào mới được tạo mà không bị ném trở lại xuống dưới (Linux)


34

Trong Ubuntu, tôi muốn cuộn lên trong khi một lệnh đang chạy trong cửa sổ terminal của tôi và tạo đầu ra mới (thực ra lệnh đang chạy là rspec). Tôi có thể cuộn lên, nhưng mỗi lần rspec tạo ra một dòng đầu ra giao diện điều khiển mới, nó sẽ ném tôi xuống phía dưới. Có cách nào để cuộn lên không? Tôi đang sử dụng terminator trên Linux Mint / Ubuntu 12.04 LTS

CẬP NHẬT

Tôi tìm thấy một cách giải quyết có thể Trang chủ Terminator nói rằng với

stty ixon

bạn có thể bật "Điều khiển luồng XON / XOFF cho đầu ra đầu cuối. Có thể tạm dừng đầu ra bằng cách nhập ^ S và tiếp tục lại bằng cách nhập ^ Q [...]"

Đây không phải là điều tôi muốn, mặc dù không phải tạm dừng đầu ra (và có thể tự hỏi khi quên bật lại), tôi nghĩ có thể có một phím bổ trợ đơn giản như shft-alt với cuộn chuột Giải pháp nào tốt hơn?


Đó là một điều mà tôi thực sự thích về LXTerminal (LXDE).
Matthew Lundberg

Bạn đang cuộn bằng Shift-PGUp hoặc bằng thanh cuộn?
ott--

@MatthewLundberg Thông thường với bánh xe cuộn chuột, vì vậy thanh cuộn. Nhưng nó cũng không hoạt động với shift-pgup :( Tôi có thể có lxterminal bên trong terminator không, bạn có biết không?
Yo Ludke

1
xfce4-terminal có một tùy chọn gọi là Cuộn trên đầu ra mà bạn có thể bỏ chọn và thực hiện đúng những gì bạn yêu cầu.
Martín Canaval

1
Như một giải pháp thay thế, bạn có thể gửi đầu ra đến một tệp, mở một thiết bị đầu cuối khác và tail -f file.txt để xem nó như được tạo ra. Điều đó sẽ để thiết bị đầu cuối đầu tiên của bạn tự do cuộn lại và vẫn cho phép bạn xem đầu ra trong thời gian thực. Không thanh lịch tôi biết.
terdon

Câu trả lời:


50

Mặc dù tôi hơi muộn, nhưng tôi sẽ đăng bài này lên đây để bất kỳ ai đến đây đều có giải pháp. Đối với tôi, giải pháp cho cùng một vấn đề là:

Tùy chọn Terminator - & gt; Tab hồ sơ - & gt; Tab cuộn [phụ] - & gt; Bỏ chọn tùy chọn 'Cuộn trên đầu ra'.

Điểm hay của tùy chọn này là nó vẫn sẽ cuộn ở đầu ra khi bạn ở dưới cùng của đầu ra, nhưng ngay khi bạn cuộn lên, nó sẽ dừng lại và sẽ không làm phiền bạn ngay cả khi nội dung đầu ra vẫn còn tạo ra.

Tôi hi vọng cái này giúp được


tuyệt vời :) Có thể tạo một lối tắt để chuyển đổi tùy chọn này?
Yo Ludke

1
Tôi đã tìm kiếm một chút, nhưng không tìm thấy cách nào để chuyển đổi nó bằng một phím tắt trong terminator. Tuy nhiên, vì tùy chọn được ghi trong tệp cấu hình terminator tại "$ HOME / .config / terminator / config", nên có thể gán phím tắt chung cho lệnh bật và tắt tùy chọn trực tiếp trong tệp cấu hình.
Chikitulfo

4
Tuy nhiên, việc thay đổi tệp cấu hình đó sẽ không ảnh hưởng đến các phiên bản terminator đã chạy, nhưng nó sẽ chỉ ảnh hưởng đến các phiên bản terminator mới được khởi chạy sau khi chỉnh sửa. Vì vậy, nếu bạn muốn chuyển đổi nó trên một terminator đang chạy, bạn phải thực hiện thủ công, afaik. Trong mọi trường hợp, với tùy chọn được chuyển thành false, ngay khi bạn cuộn xuống dòng cuối cùng, nó sẽ tiếp tục tự động cuộn trên đầu ra. Nó chỉ dừng tự động ghi nếu bạn cuộn lên bằng tay. Vì vậy, tôi không thấy bất kỳ nhu cầu thực sự nào để bật và tắt tùy chọn.
Chikitulfo

1

tail -f log.txt | less sẽ cập nhật để chuyển sang thông tin mới và sau đó bạn có thể tăng hoặc giảm. Bạn cũng có thể dùng less tính năng tìm kiếm và như vậy. Với phương pháp đường ống, bạn cũng có thể phân tích đầu ra di chuyển.

Và cùng một ý tưởng, nhưng không có đường ống: less +F log.txt .
(Điều này giả định rằng bạn có thể làm việc với nội dung của mình theo cách này.)

Cách Unix cũ là dừng Ctrl-S trong thiết bị đầu cuối của bạn để dừng và Ctrl-Q để khởi động lại cuộn đầu ra - về cơ bản đây là những gì terminator cho phép bạn làm với stty ixon.
Với thanh cuộn được thêm vào, điều này có vẻ khá tốt đối với tôi - nhấn Control-S, cuộn lên bất cứ thứ gì bạn thích và sau đó Control-Q để quay trở lại. Có, đôi khi bạn sẽ quên bỏ tạm dừng đầu ra.

Bởi vì tôi đặc biệt lười biếng và vì tôi thích sự linh hoạt của chuyển hướng đầu ra, tôi sẽ sử dụng đuôi -f với đường ống (giả sử phù hợp với trường hợp). Sau đó, tôi có thể dừng nó, mũi tên lên và thêm một cái gì đó như grep, và nó vẫn chạy: tail -f tac_plus.log | less | egrep 'peerip'

Ném một ít cat cát tee trong đó và bạn có một bữa tiệc thực sự.


Tôi muốn sử dụng cái này cho rspec spec - Vấn đề là, với cách tiếp cận đuôi / ít hơn, màu sắc bị mất (đầu ra là đen và trắng thay vì xanh / đỏ nếu tôi chạy lệnh trực tiếp)
Yo Ludke

@YoLudke Tôi không quen với rspec hoặc cách tô màu. Có nhiều cách để chuyển màu qua grep, v.v., nhưng điều đó có thể không hoạt động ở đây. Bạn đang làm một cái gì đó như chạy rspec trỏ đến một quá trình liên tục / lặp / chạy dài và nhận đầu ra của bạn từ đó?
belacqua
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.