Touches du clavier numérique dans vi insérer des lettres au lieu de chiffres

8

Je suis nouveau à vi. En fait, je l'utilise juste pour modifier de petits fichiers texte. J'ai un problème grave et inhabituel, je pense, avec le pavé numérique, comme suit: j'écris vi INet j'appuie sur Entrée. Cela me donne accès au fichier nommé IN. Ensuite, j'utilise les touches fléchées (ou hjkl) pour déplacer le curseur dans le fichier. Ensuite, j'appuie sur ipour activer insert modeet écrire. Voici le problème: le pavé numérique ne fonctionne pas correctement, car je reçois pqrstuvwxyllorsque j'appuie sur 0123456789+( ,.-*/=toujours travailler).

Enrico Maria De Angelis
la source
1
Pourquoi ma question a-t-elle migré ici? Le problème n'était pas sur le Mac mais sur Vi. En fait, comme je l'ai dit, le pavé numérique ne fonctionnait pas uniquement dans Vi . Au contraire, il a toujours fonctionné dans le terminal ou dans d'autres applications.
Enrico Maria De Angelis

Réponses:

8

Autant que je sache, il existe deux modes possibles pour les claviers numériques des terminaux VT100: le mode normal du clavier numérique et le mode du clavier d'application . Ce dernier fait que les touches du clavier n'envoient pas des nombres, mais des séquences d'échappement. Par exemple, la touche «1» envoie <ESC>[Oq, la touche «2» envoie <ESC>[Or, dont seules les lettres q et r sont visibles à l'écran. Ce sont des séquences de contrôle que le programme (hôte) peut interpréter comme des commandes pour certaines fonctionnalités. Ainsi, dans ce mode, les touches du clavier sont pratiquement utilisées comme touches de fonction supplémentaires.

Conformément à la norme du terminal VT100, un programme (hôte) peut «demander» au terminal de basculer le clavier en mode application. (Il peut le faire en envoyant une séquence de contrôle spécifique au terminal.) Vi et Vim sont connus pour le faire. Le sélecteur de mode n'est pas universel, mais sur une base programme à programme: il n'est actif que dans le programme qui l'a demandé. Dans d'autres programmes, y compris le shell, le clavier reste en mode numérique. Le paramètre par défaut dans Terminal.app d'OS X est de permettre aux programmes de passer en mode Application, ce que vous avez maintenant désactivé en décochant l'option "Autoriser le mode clavier de l'application VT100". (BTW: Sous OS X 10.7, cette option est intitulée "Comportement strict du clavier VT100".)

Voir également:

http://www.vt100.net/docs/vt100-ug/chapter3.html https://ttssh2.osdn.jp/manual/en/usage/tips/appkeypad.html

Dictionarics Anonymous
la source
Peut-être que je n'ai pas compris ce que vous avez écrit. Lorsque je suis dans le terminal, le clavier fonctionne bien (insère des chiffres). Le comportement "étrange" ne se produisait que dans le mode d'insertion de Vi.
Enrico Maria De Angelis
1
Le commutateur de mode n'est actif que dans le programme qui l'a demandé (dans ce cas: vi). Ainsi, le clavier fonctionne normalement dans d'autres programmes, y compris le shell. J'ai ajouté cette précision à la réponse.
Dictionarics Anonymous
9

J'ai résolu le problème par moi-même, mais j'aimerais savoir POURQUOI ma solution fonctionne. J'ai désélectionné l'option indiquée par la flèche rouge dans l'image suivante entrer C'est l'italien, mais la version anglaise de la même fenêtre est ici

Mais je ne me souviens pas d'avoir permis cela, mais ça y est.

Enrico Maria De Angelis
la source
La modification est trompeuse. Il est faux de dire que " je ne me souviens pas avoir activé ceci "; au contraire je suis sûr que je ne l'ai jamais activé dans cette fenêtre !
Enrico Maria De Angelis
De plus, il y avait une partie dans laquelle j'ai demandé à quelqu'un de me dire pourquoi cette option avait cette conséquence, s'il y a d'autres conséquences, et s'il est possible que je l'ai activée par un effet secondaire d'une faute de frappe.
Enrico Maria De Angelis
AFAIK, l'option est activée par défaut (au moins, elle est également activée sur mon Mac et je suis sûr que je ne l'ai pas délibérément activée moi-même). Quant à votre deuxième commentaire: voir la remarque dans l'historique des modifications concernant les questions de suivi cachées dans les réponses.
nohillside
1
La référence est que j'ai toujours utilisé un pavé numérique pour insérer des nombres dans Vi. Quoi qu'il en soit, peut-être que l'option aurait pu être activée par la mise à niveau de Yosemite vers El Capitan (je suis toujours sûr d'avoir utilisé le pavé numérique pour insérer les chiffres après la mise à niveau).
Enrico Maria De Angelis
1
Il était activé par défaut. À partir d'OS X 10.11 El Capitan, il est désactivé par défaut. Vim active le mode clavier d'application (DECKPAM) sans fournir de mappage par défaut. Je n'ai pas pu découvrir pourquoi Vim fait cela. Je pense qu'il devrait soit fournir des mappages par défaut, soit ne pas activer DECKPAM par défaut.
Chris Page