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

12

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

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

HDave
источник

Ответы:

9

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

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

command-with-lot-of-output | less

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

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

Якуб Лаки
источник
3
Я исследовал все это, и, хотя кажется, что при 100+ нажатиях клавиш, которые вы можете отобразить в командной консоли, страница-вверх и страница-вниз не являются двумя из них!
HDave
less не подходит для простой прокрутки вверх / вниз содержимого вашего терминала, и вызывать его вряд ли удобнее, чем нажатие клавиши shift. Это не вина Якуба, но печально, что нет ответа на этот вопрос.
Джонатан Хартли
@HDave здесь, как это сделать в xterm unix.stackexchange.com/questions/339160/…
Уильям
1
@JonathanHartley вот как это сделать в xterm unix.stackexchange.com/questions/339160/…
Уильям
1

Используйте 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 для приложений в терминале, и их использование будет сбивать с толку ...

аба
источник
тогда почему xterm поддерживает опцию, а не терминал gnome? В любом случае я тот, кто связал ответ выше и отправил награду, я не даю награду за этот ответ.
Уильям
askubuntu.com/users/33577/liam-william Ой, я не читал до самого дна (вверху речь идет о буфере обмена). И: достаточно честно! Я бы не дал его мне: я пытался опубликовать URL-адрес, который поддерживает мое состояние терминала gnome, но все, что я нашел, было устаревшим, то есть несуществующими ссылками ...
aba
1

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

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

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

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

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

    Привязки клавиш в Konsole

  3. Выберите «Default (XFree 4)» и нажмите кнопку «Edit ...», после чего появится другое окно.

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

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

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

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

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

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

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

    Список привязок клавиш и область тестирования в Konsole

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

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

    #!/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"
    
  • Сохранить как файл ie loop.shи запустить скрипт в терминале ie 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 (сочетание клавиш по умолчанию в терминале, для которого требуется сочетание клавиш ShiftShift + PgUp / Shift + PgDn):

  • Сочетание клавиш: PgDown+Shift-AppScreen Выход:ScrollPageDown

  • Сочетание клавиш: PgUp+Shift-AppScreen Выход:ScrollPageUp

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

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

решение суда

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

clearkimura
источник
Поэтому я пытаюсь нажатием клавиши переключения передач, чтобы комбинация клавиш PgDownне работала по какой-то причине.
Уильям
Вы хотите удалить ярлык по умолчанию? Если опорожнение поле вывода не работает, замените по умолчанию выход ScrollPageDown, ScrollPageUpс ранее заменен \E[6~, \E[5~для PgDown+Shift-AppScreenи PgUp+Shift-AppScreenкомбинацию клавиш соответственно. Важно нажать «ОК» для применения настроек.
clearkimura
Нет, я не хотел бы нажимать Shift одновременно с PgDown и PgUp. Я не верю, что это ответило на вопрос.
Уильям
Вы имеете в виду шаг 4, 5 не работает для вас? Странный. Любой скриншот со ссылкой, чтобы показать, что вы видите?
clearkimura
1
В Konsole 16.08.3 на Fedora 24 это работало как прелесть. Есть несколько незначительных отличий - вкладка называется «Клавиатура» вместо «Ввод», но нижняя строка - это та часть, которая показывает, как переименовать вывод, который был точным на , Спасибо за удаление 10-летнего зуда, который у меня был! ++ 1 ... Если бы я мог дать +10, я бы.
Майк
-2

Вы можете использовать moreкоманду следующим образом:

command-with-lots-of-output  |  more

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

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

eeecoder
источник