Настройки терминала по умолчанию отображаются Shift- Page Upи Shift- Page Downна последовательности символов, которые говорят программам, таким как Vim и Emacs, прокручивать ( ESC [ 5 ~
и ESC [ 6 ~
).
Если вы хотите, чтобы эти клавиши отправляли последовательности символов на терминал без Shiftмодификатора, вы можете настроить раскладку клавиатуры:
Терминал> Настройки> Настройки> [профиль]> Клавиатура
Если вы сделаете это, я рекомендую инвертировать значение Shiftмодификатора для этих клавиш, поменяв местами сопоставления для сдвинутых и несмещенных клавиш, чтобы альтернативные варианты поведения все еще были доступны. Также см. Меню « Вид» , в котором содержатся команды прокрутки, использующие Commandмодификатор, поэтому они доступны независимо от карты клавиатуры терминала.
Аналогично, Shift- Homeи Shift- Endотображаются для перемещения в начало / конец текущей строки ( ESC [ H
и ESC [ F
). Эти последовательности понятны Bash, но вам, возможно, придется настроить Vim, чтобы понять их, или отредактировать сопоставления специально для Vim. Vim, Emacs и некоторые другие программы отправляют управляющую последовательность, чтобы перевести терминал в «Режим курсора приложения», куда отправляются клавиши Home / End ESC O H
и ESC O F
, но Terminal (по состоянию на 10.9) не реализует это поведение. Поэтому вы можете изменить карту клавиатуры, чтобы вместо этого отправлять эти другие коды (Bash также понимает их). (На других ОС Homeи Endиспользуются для начала / конца строки, поэтому Терминал предоставляет им Shiftмодификатор симметрии.)
Control- Left Arrowи Control- Right Arrowтакже отображаются по умолчанию для последовательностей "переход к началу / концу строки", хотя они отличаются от тех, которые отображаются на Shift- Homeи Shift- End. Вместо этого они отображаются в Emacs- и Bash-совместимые последовательности ESC [ 5 D
и ESC [ 5 C
. Предполагая, что они не используются Vim, самый простой подход - настроить Vim для их принятия, используя ~ / .vimrc.
Обратите внимание, что в более поздних версиях macOS у Терминала больше нет явных сопоставлений по умолчанию Homeи Endв настройках. Вместо этого он имеет динамическое поведение, когда ключи автоматически отображаются на начало / конец строки, когда активен альтернативный экран - например, при использовании полноэкранного приложения, такого как emacs, vim, screen или tmux. При использовании линейно-ориентированной программы, такой как оболочка, на главном экране, они продолжают прокручивать вид терминала по умолчанию. ShiftМодификатор инвертирует поведение.