Налаштування терміналів за замовчуванням відображають 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 та деякі інші програми надсилають послідовність виходу, щоб перевести термінал у "Режим курсору додатків", куди надсилаються ESC O H
і клавіші Home / End ESC O F
, але Термінал (станом на 10.9) не реалізує цю поведінку. Тому ви можете змінити карту клавіатури, щоб надіслати ці інші коди (Bash також їх розуміє). (На інших ОС Homeі Endвикористовуються для початку / кінця рядка, тому Terminal надає їм 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Модифікатор інвертує поведінку.