Заставить терминал использовать 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
ключ.
Konsole - это эмулятор терминала для KDE, который предоставляет соответствующую опцию, в которой можно настроить использование клавиш Page Up и Page Down для прямого пейджинга. Нет других эмуляторов терминала, которые я нашел бы столь же простыми как Konsole для такой настройки.
Как направить пейджинг
В Konsole выполните следующие действия.
В строке меню перейдите в "Настройки" и нажмите "Настроить текущий профиль..." (Kubuntu 12.04) или "Изменить текущий профиль..." (Kubuntu 16.04), и появится окно.
Выберите вкладку "Ввод" (Kubuntu 12.04) или вкладку "Клавиатура" (Kubuntu 16.04), в которой есть раздел "Привязки клавиш" с предопределенными списками привязок клавиш.
Выберите "По умолчанию (XFree 4)" и нажмите кнопку "Изменить...", после чего появится другое окно.
Прокрутите вниз и найдите комбинацию клавиш
PgDown-Shift-AnyModifier
с выходом\E[6~
, Переименуйте этот вывод вScrollPageDown
,Прокрутите вниз и найдите комбинацию клавиш
PgUp-Shift-AnyModifier
с выходом\E[5~
, Переименуйте этот вывод вScrollPageUp
,Нажмите кнопку "ОК", чтобы закончить и закрыть окна.
Как проверить вывод
На шаге 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 в течение последних четырех лет. Как странно.
Использование 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 для приложений в терминале, и их использование будет сбивать с толку...
Вы можете использовать more
команда как это:
command-with-lots-of-output | more
это запустит исходный вывод вашей команды с помощью more.
more
можно перемещаться с помощью "пробела". Просто нажмите пробел и увидите вывод команды в виде страниц.