1

Я использую Linux в однопользовательском текстовом режиме (как описано здесь). Ctrl+PgUp и Ctrl+PgDn не работают должным образом. Используя cat -v - чтобы показать коды терминала, я вижу, что PgUp и Ctrl+PgUp оба производят один и тот же код ^[[5~ . Делая то же самое в графическом режиме, я вижу PgUp => ^[[5~ и Ctrl+PgUp => ^[[5;5~ (и обе клавиши работают как положено). Поэтому я предполагаю:

  • Это не аппаратная проблема
  • Отображение PgUp => ^[[5~ работает как задумано
  • Проблема в том, что Ctrl+PgUp выглядит как PgUp как только он достигает терминала.

Для моего варианта использования (Vim) я могу настроить PgUp для обработки как Ctrl+PgUp , но если возможно, я бы хотел, чтобы они имели другое поведение.

Есть ли какая-то конфигурация, которую я могу отредактировать, чтобы это исправить? Изменяет ли что-нибудь последовательность символов до того, как они достигнут терминала?

Еще примечания от дальнейшего расследования:

  • Вместо того, чтобы загружаться в текстовом режиме, я могу воспроизвести это, просто перейдя в tty1 (Ctrl+Alt+F1).
  • Я могу воспроизвести его на другой машине.
  • Следуя совету Диркта, я запустил echo $TERM и получил linux .

1 ответ1

1

Этот полезный ответ привел меня к решению. Моя таблица ключей по умолчанию (полученная из sudo dumpkeys) содержала

keycode 104 = Prior
...
string Prior = "\033[5~"

я добавил

control keycode 104 = F105
...
string F105 = "\033[5;5~"

и аналогично для PgDn. Обратите внимание, что псевдоним не может быть произвольной строкой; это должен быть один из ключевых символов, перечисленных в sudo dumpkeys -l , поэтому я выбрал F105, который не использовался.

Теперь cat -v - показывает ^[[5;5~ для Ctrl+PgUp как в графическом режиме. Vim все еще не отреагировал так, как ожидалось (я не уверен, почему, поскольку он работает в графическом режиме), но по крайней мере Ctrl+PgUp создает другую управляющую последовательность из PgUp, которую я переназначаю в моем .vimrc как обычно:

nnoremap ^[[5;5~ :tabp<Enter>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .