Les préférences par défaut de Terminal sont mappées Shift- Page Upet Shift- Page Downaux séquences de caractères qui indiquent aux programmes comme Vim et Emacs de défiler ( ESC [ 5 ~
et ESC [ 6 ~
).
Si vous souhaitez que ces touches envoient des séquences de caractères au terminal sans le Shiftmodificateur, vous pouvez personnaliser la carte du clavier:
Terminal> Préférences> Paramètres> [profil]> Clavier
Si vous faites cela, je vous recommande d'inverser la signification du Shiftmodificateur pour ces touches en échangeant les mappages pour les touches décalées et non décalées, afin que les comportements alternatifs soient toujours disponibles. Consultez également le menu Affichage , qui contient des commandes de défilement qui utilisent le Commandmodificateur afin qu'elles soient disponibles quelle que soit la carte du clavier du terminal.
De même, Shift- Homeet Shift- Endsont mappés pour se déplacer au début / à la fin de la ligne actuelle ( ESC [ H
et ESC [ F
). Ces séquences sont comprises par Bash, mais vous devrez peut-être personnaliser Vim pour les comprendre, ou modifier les mappages spécifiquement pour Vim. Vim, Emacs et certains autres programmes envoient une séquence d'échappement pour mettre le terminal en "mode curseur d'application", où les touches Home / End envoient ESC O H
et ESC O F
, mais Terminal (à partir de 10.9) n'implémente pas ce comportement. Vous pouvez donc modifier la carte du clavier pour envoyer ces autres codes à la place (Bash les comprend également). (Sur d'autres systèmes d'exploitation, Homeet Endsont utilisés pour le début / la fin de la ligne, Terminal leur fournit le Shiftmodificateur de symétrie.)
Control- Left Arrowet Control- Right Arrowsont également mappés par défaut pour "passer au début / fin de ligne", bien qu'ils soient différents de ceux mappés à Shift- Homeet Shift- End. Au lieu de cela, ils sont mappés aux séquences compatibles Emacs et Bash ESC [ 5 D
et ESC [ 5 C
. En supposant que ceux-ci ne sont pas utilisés par Vim, l'approche la plus simple serait de personnaliser Vim pour les accepter, en utilisant ~ / .vimrc.
Notez que dans les versions plus récentes de macOS, Terminal n'a plus de mappages explicites pour Homeet Enddans les préférences par défaut. Au lieu de cela, il a un comportement dynamique où les touches sont automatiquement mappées au début / fin de ligne lorsque l'écran secondaire est actif, par exemple lors de l'utilisation d'une application plein écran comme emacs, vim, screen ou tmux. Lorsque vous utilisez un programme orienté ligne comme un shell sur l'écran principal, ils continuent de faire défiler la vue du terminal par défaut. Le Shiftmodificateur inverse le comportement.