Làm thế nào để lưu lịch sử cuộn lại trong byobu?


23

Tôi đã có một phiên thiết bị đầu cuối thú vị trong byobu và tôi muốn lưu đầu ra của thiết bị đầu cuối (các lệnh và tất cả) vào một tệp - làm thế nào tôi có thể làm điều đó?

Theo trang người đàn ông byobu :

Ctrl-a ~ - Lưu bộ đệm cuộn của cửa sổ hiện tại

Điều này thực sự có thể đang làm một cái gì đó, nhưng tôi đã tìm thấy không có dấu hiệu cho thấy nó có thể được lưu ở đâu và dưới tên nào.

Câu trả lời:


21

Hoặc, bạn chỉ có thể sử dụng phím nóng của Byobu cho việc này:

  • Shift-F7

Điều đó sẽ đưa lịch sử của bạn và đưa nó vào trình soạn thảo yêu thích của bạn. Bây giờ, chỉ cần lưu bộ đệm đó vào một tập tin. Nếu bạn ở vi hoặc vim, bạn có thể sử dụng:wq /tmp/out


sift-F7 dường như không làm gì cả và màn hình trợ giúp byobu cũng không đề cập đến điều đó - Tôi đang sử dụng byobu 5.17 với tmux 1.6 trong ubfox.
drevicko

Điều này thật tuyệt vời, tiết kiệm cho tôi rất nhiều thời gian!
Ctrl-C

1
Tôi đang chạy byobu 5.74 và tùy chọn đó xuất hiện cho tôi trong màn hình trợ giúp và hoạt động như mô tả. Tôi sẽ ngạc nhiên nếu đó không phải là trường hợp mà Dustin là người tạo ra byobu. :) Đáng nói đến đầu ra được lưu tại $BYOBU_RUN_DIR/printscreen(như đã lưu ý trong màn hình trợ giúp).
Chuim

2
Đối với tôi, nó đã được lưu vào /dev/shm/byobu-serg-ucvwj2rJ/printscreen, nơi serg rõ ràng là tên người dùng của tôi
Sergiy Kolodyazhnyy

1
Tôi biết đây là một câu trả lời cũ. Nhưng dù sao, tôi cũng gặp vấn đề tương tự: shift-F7 dường như không làm gì cả (mặc dù phím tắt có trong menu trợ giúp). Tôi đang sử dụng nó trên máy chủ Ubuntu-16.04 với phiên bản byobu 5.106 & tmux 2.1.
Marc

20

Một câu hỏi cũ vẫn không được trả lời một cách khả thi, và tôi lại nhấn nhu cầu.

Lần này tôi tìm thấy một giải pháp khả thi. Từ man byobu:

SCROLLBACK, COPY, PASTE MODES

   Each  window  in  Byobu  has  up to 10,000 lines of scrollback history,
   which you can enter and navigate using the alt-pgup and alt-pgdn  keys.
   Exit  this  scrollback mode by hitting enter.  You can also easily copy
   and paste text from scrollback mode.  To do so, enter scrollback  using
   alt-pgup  or  alt-pgdn,  press the spacebar to start highlighting text,
   use up/down/left/right/pgup/pgdn to select the text, and press enter to
   copy  the  text.  You can then paste the text using alt-insert or ctrl-
   a-].
  1. tôi đánh F7 để vào chế độ cuộn lại,
  2. Space để bắt đầu chọn
  3. gg để cuộn lên đầu bộ đệm (cảm ơn @GeorgeMarian)
    • Nếu điều đó không hiệu quả, hãy thử điều này: với rất nhiều Page uphoặc :theo sau là số dòng lớn nhất (được chỉ ra trên cùng bên phải) và Page upđể đến đầu trang đó,
  4. Enter để sao chép (vào clipboard của byobu, không phải là thiết bị đầu cuối / hệ thống),
  5. sau đó cat > my-byobu-dump.txttrong thiết bị đầu cuối,
  6. Alt+ Inserthoặc ctrl+ A+ ]để dán (một lần nữa, từ bảng tạm của byobu)
  7. Ctrl+ Dđể đóng tệp.

Đây là câu trả lời duy nhất làm việc tốt cho tôi.
pjvandehaar

1
Đối với bước 3, nếu bạn muốn sử dụng hàng đầu gg(giống như vim).
George Marian

@GeorgeMarian Bạn có biết nếu đó là từ chế độ giả lập vim? mọi người sẽ tìm thấy những hành vi khác? Có vẻ như hành vi mặc định (ít nhất là với byobu 5.17 so với tmux 1.6)
drevicko

Không có chế độ giả lập vim trong byobu mà tôi biết. Có các lệnh di chuyển giống như vi trong chế độ cuộn lại và có thể ở nơi khác. Tôi chỉ tình cờ thử chúng, vì - tốt - Linux. ( lessGần đây tôi đã sử dụng rất nhiều, tìm kiếm và di chuyển xung quanh.)
George Marian

được. nó có thể đến từ công nghệ ghép kênh cơ bản (màn hình hoặc tmux) không? Dù sao, tôi đã thêm đề nghị của bạn. Rất cám ơn :)
drevicko

3

Shift + F7 chỉ hoạt động như mong đợi nếu bạn có biến môi trường EDITOR được đặt thành trình chỉnh sửa trong byobu . Vì một số lý do, trong một số trường hợp (ví dụ với tôi khi kết nối qua SSH với máy tính khác), đặt biến này vào ~/.profilelà không đủ. Một nơi để đặt nó để byobu luôn đọc nó ở trong đó ~/.bashrc. Sao chép một cái gì đó như sau vào ~/.bashrc:

# Although this is set in ~/.profile, it is set here as well so that in a 
# remote byobu session, Shift+F7 copies the output to a Vim buffer. See:
# /ubuntu/382750/how-to-save-scrollback-history-in-byobu
export EDITOR='vim'

Trong trường hợp của tôi, điều này không giúp được gì (thực ra .bashrc là nơi tôi đặt EDITOR anway). Theo như tôi có thể nói, trình giả lập thiết bị đầu cuối của tôi (chương trình Terminal mặc định của osx) không truyền đúng các phím chức năng - có thể giải quyết được trong cài đặt của Terminal, nhưng các giải pháp ctrl-A hoạt động tốt với tôi.
drevicko

1
@drevicko ah tôi hiểu rồi, rất tốt để biết. Chà, thật tốt khi chúng tôi đang thu thập một số cách giải quyết để hy vọng một trong số họ sẽ làm việc cho người tiếp theo gặp phải vấn đề này.
scottkosty

fyi: .profile không được tải cho các phiên ssh theo mặc định - giải thích những gì đã xảy ra ở đây.
drevicko

2

Nếu bạn được sử dụng không sử dụng các phím F thì điều này có thể phù hợp với bạn:

  • Ctrl+ a, [: vào chế độ cuộn lại
  • Space vào chế độ sao chép (tùy chọn)
  • Enter thoát khỏi chế độ cuộn lại hoặc sao chép
  • Ctrl+ a, ]: dán những gì đã được sao chép

Ngoài ra nếu chương trình thiết bị đầu cuối của bạn chặn các phím F;)
drevicko

1

Sử dụng Ctrl+ A+ ~để sao chép bộ đệm cuộn vào bảng tạm byobu.

Dán văn bản vào trình chỉnh sửa bằng Alt+ insert hoặc Ctrl+ A+ ].

(Điều chỉnh Ctrl+ Anếu bạn đã thay đổi phím thoát của mình.)


Hiện tại tôi chỉ có một máy Mac để làm việc và ctrl-a ~ sau đó ctrl-a] không làm gì cả - Tôi nghi ngờ ctrl-a không làm cho nó thành byobu (nằm ở đầu kia của một đường hầm ssh) .. Có ý kiến ​​gì không?
drevicko

0

Chọn văn bản bạn muốn lưu, sau đó nhấn Control+ Shift + C Tiếp theo, mở trình soạn thảo văn bản yêu thích của bạn. Sau đó dán nội dung ở đây bằng Control+ V . Cuối cùng lưu tệp ở vị trí mong muốn.

KẾT THÚC NGÀY HÔM NAY: Khi cố gắng sao chép một cái gì đó trong thiết bị đầu cuối, hãy làm như bình thường, sử dụng Control+ Shift + Cthay vì Control+ Cvà dán như bình thường. Để dán một cái gì đó trên bảng tạm vào thiết bị đầu cuối, hãy sử dụng Control+ Shift + V.


nó chỉ là một sơ đồ dán sao chép đơn giản, sẽ lãng phí thời gian để sao chép và sau đó dán. drevicko muốn làm điều đó thông qua thiết bị đầu cuối hoặc tự động lưu nó ở đâu đó.
Sukupa91

Anh ấy không nói rằng tôi muốn lưu mọi thứ vào một tập tin sao? Đây là cách anh ấy làm điều đó.
Cammy_the_block

1
Không, tôi tin rằng bạn chỉ nhận được giá trị trên màn hình - không phải toàn bộ (có lẽ là 10000 dòng) lịch sử cuộn lại của byobu ... Lưu ý rằng byobu lưu trữ lịch sử thiết bị đầu cuối độc lập với ứng dụng đầu cuối mà bạn sử dụng.
drevicko

Nếu bạn giữ chuột phía trên cửa sổ, nó sẽ cuộn lên để bạn có thể làm nổi bật toàn bộ.
Cammy_the_block

2
@Cammy_the_block bạn đang thiếu bit "byobu", hãy tìm kiếm nó (một điều rất tiện dụng nếu bạn đang làm việc trên các máy chủ từ xa). Nó lưu trữ các phiên cuối mà bạn có thể ngắt kết nối và sau đó kết nối lại. Tôi có 10.000 dòng lịch sử thiết bị đầu cuối KHÔNG thể truy cập vào ứng dụng thiết bị đầu cuối cục bộ. Byobu (và phần phụ trợ sử dụng: tmux hoặc màn hình) có bộ lệnh điều khiển bằng bàn phím riêng để truy cập vào lịch sử đó.
drevicko

0

Ctrl+ A+ ]sẽ hoạt động nếu bạn gõ từ 1 đến 20 lần trở lên với abracodabra. Nhưng lệnh duy nhất sẽ hoạt động mà không bị đau đầu. Để dán văn bản từ bộ đệm vào thiết bị đầu cuối hoặc tệp. Và người chiến thắng là Alt+ Ins., Nói xin chào với Byobu là phần mềm GPLv3, được tác giả và bảo trì bởi Dustin Kirkland.


0

Nếu bạn cần lưu lịch sử sử dụng Shift + F7shorcut. Giống như @ Dustin-kirkland nói.

Nếu bạn thích cuộn lên xuống trong thiết bị đầu cuối của mình, điều đó phụ thuộc vào việc bạn sử dụng tmux hay màn hình. Ví dụ:

  1. Screeen:

    • CTRL + a: Nếu bạn sử dụng [sau đó, bạn nhập trong chế độ cuộn như @ ikar-pohorský nói.
  2. Tmux:

    • ALT + PageUp: bạn cuộn lên.
    • ALT + PageDown: bạn cuộn xuống.

Byobu F1 giúp

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.