Jak zapisać historię przewijania w Byobu?


23

Miałem interesującą sesję terminalową w byobu i chciałbym zapisać dane wyjściowe terminala (polecenia i wszystkie) w pliku - jak to zrobić?

Według strony podręcznika byobu :

Ctrl-a ~ - Zapisz bufor przewijania bieżącego okna

To może rzeczywiście coś robić, ale nie znalazłem żadnych wskazówek, gdzie i pod jaką nazwą można by to zapisać.

Odpowiedzi:


21

Lub możesz po prostu użyć skrótu Byobu do tego:

  • Shift-F7

To zabierze twoją historię i umieści ją w twoim ulubionym edytorze. Teraz zapisz ten bufor do pliku. Jeśli korzystasz z vi lub vim, możesz używać:wq /tmp/out


Wydaje się, że sift-F7 nic nie robi i ekran pomocy byobu też o tym nie wspomina - używam byobu 5.17 z tmux 1.6 w Ubuntu.
— drevicko

To jest niesamowite, zaoszczędziło mi dużo czasu!
— Ctrl-C

1
Używam byobu 5.74 i ta opcja pojawia się dla mnie na ekranie pomocy i działa zgodnie z opisem. Byłbym zaskoczony, gdyby tak nie było, biorąc pod uwagę, że Dustin jest twórcą byobu. :) Warto wspomnieć, że dane wyjściowe są zapisywane w $BYOBU_RUN_DIR/printscreen(jak zaznaczono na ekranie pomocy).
— Chuim

2
Dla mnie zostało zapisane /dev/shm/byobu-serg-ucvwj2rJ/printscreen, gdzie serg jest oczywiście moją nazwą użytkownika
— Sergiy Kolodyazhnyy

1
Wiem, że to stara odpowiedź. W każdym razie mam ten sam problem: shift-F7 wydaje się nic nie robić (nawet jeśli skrót jest obecny w menu pomocy). Używam go na hoście Ubuntu-16.04 z byobu w wersji 5.106 i tmux 2.1.
— Marc

20

Na stare pytanie wciąż nie udzieliłem praktycznej odpowiedzi i ponownie zaspokoiłem potrzebę.

Tym razem znalazłem realne rozwiązanie. Od 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. Nacisnąłem, F7aby przejść do trybu przewijania,
  2. Space aby rozpocząć wybieranie,
  3. gg przewiń do góry bufora (dzięki @GeorgeMarian)
    • Jeśli to nie zadziała, spróbuj tego: albo z dużą liczbą, Page upalbo :po niej następuje największy numer linii (wskazany w prawym górnym rogu) i Page upaby dostać się na górę tej strony,
  4. Enter kopiować (do schowka Byobu, a nie terminala / systemowego),
  5. potem cat > my-byobu-dump.txtw terminalu
  6. Alt+ Insertlub ctrl+ A+, ]aby wkleić (ponownie, ze schowka Byobu)
  7. Ctrl+, Daby zamknąć plik.

To była jedyna odpowiedź, która działała dla mnie dobrze.
— pjvandehaar

1
Dla kroku 3, jeśli chcesz dostać się do najwyższego poziomu gg(tak jak vim).
— George Marian

@GeorgeMarian Czy wiesz, że pochodzi z trybu emulacji vim? czy ludzie znajdą inne zachowania? Wygląda na domyślne zachowanie (przynajmniej z byobu 5.17 nad tmux 1.6)
— drevicko

W znanym mi byobu nie ma trybu emulacji vim. W trybie przewijania dostępne są polecenia ruchu podobne do vi , a może i gdzie indziej. Właśnie próbowałem ich wypróbować, ponieważ - no cóż - Linux. ( lessOstatnio dużo korzystam, szukam i się poruszam.)
— George Marian

dobrze. czy może pochodzić z bazowej technologii multipleksowej (ekran lub tmux)? W każdym razie dodałem twoją sugestię. Wielkie dzięki :)
— drevicko

3

Shift + F7 działa tylko zgodnie z oczekiwaniami, jeśli zmienna środowiskowa EDITOR jest ustawiona na edytor w byobu . Z jakiegoś powodu, w niektórych przypadkach (np. Dla mnie, gdy łączę się przez SSH z innym komputerem), ustawienie tej zmiennej ~/.profilenie jest wystarczające. Jedno miejsce, aby ustawić go tak, aby byobu zawsze go czytał ~/.bashrc. Skopiuj coś takiego ~/.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'

W moim przypadku to nie pomogło (właściwie .bashrc jest tam, gdzie ustawiłem EDITOR na zawsze). O ile mogę stwierdzić, mój emulator terminala (domyślny program terminala osx) nie przekazuje poprawnie klawiszy funkcyjnych - prawdopodobnie można go rozwiązać w ustawieniach terminala, ale rozwiązania ctrl-A działają dobrze dla mnie.
— drevicko

1
@drevicko ah widzę, dobrze wiedzieć. Dobrze, że zbieramy kilka obejść, aby mieć nadzieję, że jedno z nich zadziała dla kolejnej osoby, która napotka ten problem.
— scottkosty

fyi: .profile nie jest domyślnie ładowany dla sesji ssh - wyjaśnia, co się tutaj stało.
— drevicko

2

Jeśli nie używasz klawiszy F, może to działać dla Ciebie:

  • Ctrl+ a, [: Wejść w tryb przewijania wstecz
  • Space wejdź w tryb kopiowania (opcjonalnie)
  • Enter wyjść z trybu przewijania lub kopiowania
  • Ctrl+ a, ]: Pasta, co zostało skopiowane

Także jeśli twój program terminalowy przechwytuje klawisze F;)
— drevicko

1

Użyj Ctrl+ A+, ~aby skopiować bufor przewijania do schowka Byobu.

Wklej tekst do edytora za pomocą Alt+ insert lubCtrl + A+ ].

(Dostosuj Ctrl+, Ajeśli zmieniłeś klawisz Escape.)


W tej chwili mam tylko komputer Mac, a ctrl-a ~, a następnie ctrl-a] nic nie robią - podejrzewam, że ctrl-a nie robi byobu (czyli na drugim końcu tunel ssh) .. Jakieś pomysły?
— drevicko

0

Wybierz tekst, który chcesz zapisać, a następnie naciśnij Control+ Shift + C Dalej, otwórz swój ulubiony edytor tekstu. Następnie wklej zawartość tutaj za pomocą Control+ V . Na koniec zapisz plik w wybranej lokalizacji.

WSKAZÓWKA TERMINALA DNIA: Kiedy próbujesz skopiować coś w terminalu, zrób to jak zwykle, spodziewaj się użycia Control+ Shift + Czamiast Control+ Ci wklej jak zwykle. Aby wkleić coś ze schowka do terminala, użyj Control+ Shift + V.


to tylko prosty schemat kopiowania wklejania, straci czas na skopiowanie, a następnie wklejenie. drevicko chce to zrobić przez terminal lub automatycznie gdzieś zapisuje.
— Sukupa91,

Czy nie powiedział, że chciałbym zapisać wszystko do pliku? Tak to robi.
— Cammy_the_block

1
Nie, wierzę, że po prostu zobaczysz wartość ekranu - nie całą (być może 10000 linii) historię przewijania byobu ... Pamiętaj, że byobu przechowuje historię terminali, która jest niezależna od używanej przez ciebie aplikacji terminalowej.
— drevicko

Jeśli przytrzymasz mysz nad oknem, przewinie się ona w górę, abyś mógł podświetlić całość.
— Cammy_the_block

2
@Cammy_the_block brakuje trochę „byobu”, poszukaj go (BARDZO przydatna rzecz, jeśli pracujesz na zdalnych serwerach). Przechowuje sesje terminali, które można rozłączyć, a następnie ponownie połączyć. Mam 10 000 linii historii terminala, która NIE jest dostępna dla lokalnej aplikacji terminala. Byobu (i backend, którego używa: tmux lub screen) ma własny zestaw poleceń sterowanych klawiaturą, aby uzyskać dostęp do tej historii.
— drevicko

0

Ctrl+ A+ ]zadziała, jeśli wpiszesz od 1 do 20 razy lub więcej za pomocą abrakodabry. Ale tylko jedno polecenie będzie działać bez bólu głowy. Aby wkleić tekst z bufora do terminala lub pliku. Zwycięzcą jest Alt+ Ins., Przywitaj się z Byobu to oprogramowanie GPLv3, którego autorem i administratorem jest Dustin Kirkland.


0

Jeśli chcesz zapisać historię, użyj Shift + F7skrótu. Jak mówi @ dustin-kirkland .

Jeśli wolisz przewijać w górę i w dół w swoim terminalu, zależy to od tego, czy używasz tmuxa czy screena. Przykłady:

  1. Screeen:

    • CTRL + a: Jeśli go użyjesz [, wejdziesz w tryb przewijania, jak mówi @ ikar-pohorský .
  2. Tmux:

    • ALT + PageUp: przewijasz w górę.
    • ALT + PageDown: przewijasz w dół.

Pomoc Byobu F1

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.