Заставить терминал использовать pageup/pagedown вместо shift-pageup/shift-pagedown?

Я устал от shift-pgup, чтобы перебирать страницы в терминале gnome, командной строке, terminator, guake и т. Д.

Есть ли какой-нибудь способ легко заставить эти приложения использовать прямые клавиши перемещения вверх и вниз для перемещения по страницам?

4 ответа

Решение

Боюсь, что это невозможно, поскольку PgUp/PgDown не будут отправляться приложениям командной строки, что сделает некоторые из них непригодными для использования. Это хорошая старая функция Unix.

Если вы хотите более удобную прокрутку, я предлагаю использовать less команда. Используется так:

command-with-lot-of-output | less

Это начнет less команда с выводом вашей исходной команды. (Подробнее о передаче данных в другие программы можно найти здесь: http://www.dsj.net/compedge/shellbasics1.html)

Меньше можно перемещаться с помощью стрелок или PgUp/PgDown. Для вашего удобства он также обеспечивает поиск и многое другое (см. man less для большего). Вы можете выйти less просто нажав q ключ.

Использование xterm и настроить сочетания клавиш (в ~/.Xresources) как это:

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

gnome-terminal говорит, что PageUp/PageDown для приложений в терминале, и их использование будет сбивать с толку...

Konsole - это эмулятор терминала для KDE, который предоставляет соответствующую опцию, в которой можно настроить использование клавиш Page Up и Page Down для прямого пейджинга. Нет других эмуляторов терминала, которые я нашел бы столь же простыми как Konsole для такой настройки.

Как направить пейджинг

В Konsole выполните следующие действия.

  1. В строке меню перейдите в "Настройки" и нажмите "Настроить текущий профиль..." (Kubuntu 12.04) или "Изменить текущий профиль..." (Kubuntu 16.04), и появится окно.

  2. Выберите вкладку "Ввод" (Kubuntu 12.04) или вкладку "Клавиатура" (Kubuntu 16.04), в которой есть раздел "Привязки клавиш" с предопределенными списками привязок клавиш.

  3. Выберите "По умолчанию (XFree 4)" и нажмите кнопку "Изменить...", после чего появится другое окно.

  4. Прокрутите вниз и найдите комбинацию клавиш PgDown-Shift-AnyModifier с выходом \E[6~, Переименуйте этот вывод в ScrollPageDown,

  5. Прокрутите вниз и найдите комбинацию клавиш PgUp-Shift-AnyModifier с выходом \E[5~, Переименуйте этот вывод в ScrollPageUp,

  6. Нажмите кнопку "ОК", чтобы закончить и закрыть окна.

Как проверить вывод

На шаге 3 есть "Тестовая зона" для подтверждения вывода для каждого нажатия клавиши.

  • Нажмите, чтобы перевести фокус в текстовое поле "Ввод:" и нажмите клавиши Page Up и Page Down (по одной).

  • Убедитесь, что выходные данные совпадают с переименованными.

Или напишите простой скрипт для вывода сообщения в цикле. Я включил свой собственный сценарий следующим образом.

  • Скопируйте и вставьте следующие строки кода в текстовом редакторе.

    #!/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"
    
  • Сохранить как файл т.е. loop.sh и запустить скрипт в терминале т.е. bash loop.sh (Неисполняемый).

  • Подождите, пока отраженные сообщения не заполнят область просмотра и не начнут прокручивать вывод вниз.

  • Затем нажмите клавиши Page Up и Page Down, чтобы прокрутить вверх и прокрутить область просмотра вниз.

Я тестировал с помощью Konsole 2.8.5, KDE 4.8.5 в Kubuntu 12.04.

Бонус: комбинация клавиш и выход

Хорошо, бонус ответ для уточнения. Можно задаться вопросом, почему мне пришлось редактировать эти комбинации клавиш, а не другие. Я понял это раньше, протестировав несколько типов клавиатуры.

Ниже приведены комбинация клавиш по умолчанию и ее вывод, которые были определены с помощью "Тестовой зоны" в Konsole.

Для основных клавиш Page Up/Page Down (включая вариант клавиатуры, который требует нажатия клавиши Fn или Fn+PgUp/Fn+PgDn):

  • Комбинация клавиш: PgDown-Shift-AnyModifier Выход: \E[6~

  • Комбинация клавиш: PgUp-Shift-AnyModifier Выход: \E[5~

Для дополнительных клавиш Page Up/Page Down (сочетание клавиш по умолчанию в терминале, для которого требуется клавиша Shift или Shift+PgUp/Shift+PgDn):

  • Комбинация клавиш: PgDown+Shift-AppScreen Выход: ScrollPageDown

  • Комбинация клавиш: PgUp+Shift-AppScreen Выход: ScrollPageUp

Обратите внимание, что минус - и плюс + Знаки отличаются между каждым ключевым словом для первичного и вторичного ключей. Именно так нажатия клавиш переводятся в эквивалентные символы, по крайней мере, в Konsole.

Однако я не уверен, что эти эквивалентные символы на самом деле поняты другими эмуляторами терминала. Это насколько я знаю по собственному опыту.

решение суда

Для опытных пользователей, которым не нравится работать с различными файлами конфигурации и такими утомительными обходными путями, Konsole легко покорит ваше сердце. Похоже, что никто не обращал внимания на этот уровень настройки, предлагаемый Konsole и KDE в течение последних четырех лет. Как странно.

Вы можете использовать more команда как это:

command-with-lots-of-output  |  more

это запустит исходный вывод вашей команды с помощью more.

more можно перемещаться с помощью "пробела". Просто нажмите пробел и увидите вывод команды в виде страниц.

Другие вопросы по тегам