Czy terminal może używać pageup / pagedown zamiast shift-pageup / shift-pagedown?

12

Zmęczyło mnie dość shift-pgup do przewijania strony w terminalu gnomów, linii poleceń, terminatorze i guake itp.

Czy jest jakiś sposób, aby te aplikacje korzystały z prostych klawiszy przewijania i przewijania stron?

HDave
źródło

Odpowiedzi:

9

Obawiam się, że nie jest to możliwe, ponieważ żadne aplikacje PgUp / PgDown nie będą wysyłane do aplikacji wiersza polecenia, co spowoduje, że niektóre z nich będą bezużyteczne. To dobra stara uniksowa funkcja.

Jeśli chcesz przewijać w sposób bardziej przyjazny dla użytkownika, sugeruję użycie lesspolecenia. Używa się go w ten sposób:

command-with-lot-of-output | less

Spowoduje to uruchomienie lesspolecenia od wyniku oryginalnego polecenia. ( Więcej informacji na temat przesyłania danych wyjściowych do innych programów można znaleźć tutaj: http://www.dsj.net/compedge/shellbasics1.html )

Mniej można poruszać się za pomocą strzałek lub PgUp / PgDown. Dla Twojej wygody zapewnia również wyszukiwanie i więcej (zobacz man lesswięcej). Możesz wyjść, lesspo prostu naciskając qklawisz.

Jakub Lucký
źródło
3
Sprawdziłem, do cholery, i chociaż wydaje się, że przy ponad 100 naciśnięciach klawiszy, które można zmapować w konsoli poleceń, przewijanie w górę i w dół nie są dwiema z nich!
HDave
less nie nadaje się do przewijania zawartości terminala w górę / w dół, a wywoływanie go nie jest wygodniejsze niż naciśnięcie Shift. To wcale nie wina Jakuba, ale smutne, że nie ma odpowiedzi na to pytanie.
Jonathan Hartley
@HDave tutaj jest, jak to zrobić w xterm unix.stackexchange.com/questions/339160/…
William
1
@JonathanHartley tutaj jest, jak to zrobić w xterm unix.stackexchange.com/questions/339160/…
William
1

Użyj xtermi zmodyfikuj skróty klawiszowe (w ~/.Xresources) w następujący sposób:

xterm*VT100.Translations: #override \n\
    <KeyPress>Prior:scroll-back(1,page)\n\
    <KeyPress>Next:scroll-forw(1,page)\n\

gnome-terminal mówi PageUp / PageDown jest dla aplikacji w terminalu i używanie ich byłoby mylące ...

aba
źródło
to dlaczego xterm obsługuje tę opcję, a nie terminal gnome? Tak czy inaczej to ja połączyłem powyższą odpowiedź i wysłałem nagrodę Nie daję nagrody za tę odpowiedź.
William
askubuntu.com/users/33577/liam-william Ups, nie czytałem do końca (u góry chodzi o schowek). I: wystarczająco sprawiedliwe! Nie dałbym tego: próbowałem opublikować adres URL, który obsługuje mój terminal gnome-terminal, ale wszystko, co znalazłem, było nieaktualne, tj. Nieistniejące linki ...
aba
1

Konsole to emulator terminala dla KDE, który udostępnia odpowiednią opcję, w której można skonfigurować użyciePage UpiPage Downklucze do bezpośredniego stronicowania. Nie ma innych emulatorów terminali, które byłyby tak łatwe jak Konsole do takiego dostosowywania.

Jak kierować stronicowanie

W Konsoli wykonaj następujące czynności.

  1. Na pasku menu przejdź do „Ustawienia” i kliknij „Konfiguruj bieżący profil ...” (Kubuntu 12.04) lub „Edytuj bieżący profil ...” (Kubuntu 16.04), a pojawi się okno.

  2. Kliknij kartę „Wejście” (Kubuntu 12.04) lub kartę „Klawiatura” (Kubuntu 16.04), która zawiera sekcję „Powiązania klawiszy” ze wstępnie zdefiniowanymi listami powiązań klawiszy.

    Kluczowe wiązania w Konsoli

  3. Wybierz „Domyślne (XFree 4)” i kliknij przycisk „Edytuj ...”, wtedy pojawi się kolejne okno.

  4. Przewiń w dół i poszukaj kombinacji klawiszy PgDown-Shift-AnyModifierz danymi wyjściowymi \E[6~. Zmień nazwę tego wyjścia na ScrollPageDown.

  5. Przewiń w dół i poszukaj kombinacji klawiszy PgUp-Shift-AnyModifierz danymi wyjściowymi \E[5~. Zmień nazwę tego wyjścia na ScrollPageUp.

  6. Kliknij przycisk „OK”, aby zakończyć i zamknąć okna.

Jak przetestować wyjście

W kroku 3 znajduje się „Obszar testowy” potwierdzający dane wyjściowe dla każdego naciśnięcia klawisza.

  • Kliknij, aby ustawić fokus w polu tekstowym „Input:” i naciśnij Page Upi Page Downklawisze (jeden po drugim).

  • Sprawdź, czy dane wyjściowe są takie same jak te o zmienionej nazwie.

    Lista kluczowych powiązań i obszar testowy w Konsole

Możesz też napisać prosty skrypt, aby wywołać echo wiadomości w pętli. Dołączyłem własny skrypt w następujący sposób.

  • Skopiuj i wklej następujące wiersze kodu w edytorze tekstu.

    #!/bin/bash
    
    echo "Started script"
    echo "If no input, then loop"
    while true
    do {
        echo "Hello, world"
        echo "Wait 1 second to loop [q to quit]"
        read -t 1 -n 1 INPUT && echo
        if [ "$INPUT" == "q" ]
            then break
            else echo "UTC now: $(date -u +%H%M%S)"
        fi
        continue
    }
    done
    echo "Ended script"
    
  • Zapisz jako plik ie loop.shi uruchom skrypt w terminalu tj. bash loop.sh(Niewykonywalny).

  • Poczekaj, aż echo wiadomości wypełni obszar przeglądania i zacznie przewijać dane wyjściowe w dół.

  • Następnie naciśnij klawisze Page Upi Page Down, aby przewinąć w górę i przewiń w dół obszaru wyświetlania.

Testowałem przy użyciu Konsoli 2.8.5, KDE 4.8.5 w Kubuntu 12.04.

Bonus: kombinacja klawiszy i wyjście

Dobra, premia za wyjaśnienia. Można się zastanawiać, dlaczego musiałem edytować te kombinacje klawiszy, a nie inne. Odkryłem to wcześniej, testując kilka rodzajów klawiatury.

Poniżej przedstawiono domyślną kombinację klawiszy i jej wyniki, które zostały ustalone przy użyciu „Obszaru testowego” w Konsoli.

W przypadku podstawowych klawiszy Page Up / Page Down (w tym wariantu klawiatury, który wymaga naciśnięcia Fnklawiszy aka Fn + PgUp / Fn + PgDn):

  • Kombinacja klawiszy: PgDown-Shift-AnyModifier Wyjście:\E[6~

  • Kombinacja klawiszy: PgUp-Shift-AnyModifier Wyjście:\E[5~

W przypadku dodatkowych klawiszy Page Up / Page Down (domyślny skrót w terminalu, który wymaga Shiftklawisza Shift + PgUp / Shift + PgDn):

  • Kombinacja klawiszy: PgDown+Shift-AppScreen Wyjście:ScrollPageDown

  • Kombinacja klawiszy: PgUp+Shift-AppScreen Wyjście:ScrollPageUp

Zauważ, że znaki minus -i plus +różnią się między poszczególnymi słowami kluczowymi dla kluczy podstawowych i dodatkowych. W ten sposób naciśnięcia klawiszy są tłumaczone na równoważne znaki, przynajmniej w Konsole.

Nie jestem jednak pewien, czy te równoważne znaki są faktycznie rozumiane przez inne emulatory terminali. O ile mi wiadomo z własnego doświadczenia.

Werdykt

Dla zaawansowanych użytkowników, którzy nie lubią zajmować się różnymi plikami konfiguracyjnymi i tak żmudnymi obejściami, Konsole z łatwością podbije twoje serce. Wygląda na to, że nikt nie zauważył takiego poziomu personalizacji oferowanego przez Konsole i KDE przez ostatnie cztery lata. Jak dziwnie.

clearkimura
źródło
Dlatego próbuję naciskać klawisz Shift, ustawiając kombinację klawiszy, PgDownktóra z jakiegoś powodu nie działa.
William
Chcesz usunąć domyślny skrót? Jeśli opróżnianie pola wyjściowego nie działa, zamień domyślne dane wyjściowe ScrollPageDown, odpowiednio na ScrollPageUppoprzednio zastąpione \E[6~, \E[5~na PgDown+Shift-AppScreeni PgUp+Shift-AppScreenkombinację klawiszy. Ważne jest, aby kliknąć „OK”, aby zastosować ustawienia.
clearkimura
nie, nie chcę naciskać Shift w tym samym czasie, co PgDown i PgUp. Nie wierzę, że to odpowiedziało na pytanie.
William
Masz na myśli krok 4, 5, który dla ciebie nie działał? Dziwne. Jakiś zrzut ekranu z linkiem do pokazania tego, co widzisz?
clearkimura
1
Działa to jak urok w Konsoli 16.08.3 na Fedorze 24. Istnieje kilka drobnych różnic - zakładka nazywa się „Klawiatura” zamiast „Wejście”, ale dolna linia to część pokazująca, jak zmienić nazwę wyjścia na miejscu . Dzięki za usunięcie 10-letniego świądu, który miałem! ++ 1 ... Gdybym mógł dać +10, dałbym.
Mike S
-2

Możesz użyć morepolecenia w następujący sposób:

command-with-lots-of-output  |  more

spowoduje to uruchomienie oryginalnego wyjścia polecenia z większą liczbą.

moremożna nawigować za pomocą „spacji”. Po prostu naciśnij spację i zobacz wynik polecenia jako strony.

eeecoder
źródło