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.