I tasti del tastierino numerico in vi inseriscono lettere anziché numeri


8

Sono nuovo di vi. In realtà lo sto usando solo per modificare piccoli file di testo. Ho un problema serio e insolito, credo, con il tastierino numerico, come segue: scrivo vi INe premo invio. Questo mi consente di accedere al file denominato IN. Quindi uso i tasti freccia (o hjkl) per spostare il cursore nel file. Quindi premo iper attivare insert modee scrivere. Ecco che arriva il problema: il tastierino numerico non funziona correttamente, dato che ottengo pqrstuvwxylquando premo 0123456789+( ,.-*/=funzionano ancora).


1
Perché la mia domanda è stata migrata qui? Il problema non riguardava il Mac ma Vi. In effetti, come ho detto, il tastierino numerico non funzionava solo in Vi . Al contrario, ha sempre funzionato nel terminale o in altre applicazioni.
Enrico Maria De Angelis,

Risposte:


8

Per quanto ne so, ci sono due possibili modalità per tastiere numeriche dei terminali VT100: la normale modalità Tastiera numerica e la modalità Tastiera applicazione . Quest'ultimo ha i tasti della tastiera che inviano non numeri, ma sequenze di escape. Ad esempio, il tasto '1' invia <ESC>[Oq, il tasto '2' invia <ESC>[Or, di cui solo le lettere q ed r sono visibili sullo schermo. Queste sono sequenze di controllo che il programma (host) può interpretare come comandi per alcune funzionalità. Quindi, in questa modalità, i tasti della tastiera sono praticamente usati come tasti funzione aggiuntivi.

In conformità con lo standard del terminale VT100, un programma (host) può "chiedere" al terminale di passare alla tastiera in modalità applicazione. (Può farlo inviando una specifica sequenza di controllo al terminale.) Vi e Vim sono noti per farlo. Il selettore di modalità non è universale, ma su un programma per programmare base: è attivo solo nel programma che lo ha richiesto. In altri programmi, inclusa la shell, la tastiera rimane in modalità Numero. L'impostazione predefinita in Terminal.app di OS X è consentire ai programmi di passare alla modalità Applicazione, che è ciò che ora hai disabilitato deselezionando l'opzione "Consenti modalità tastiera applicazione VT100". (A proposito: in OS X 10.7 questa opzione è etichettata "Comportamento tastiera VT100 rigoroso".)

Guarda anche:

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


Forse non ho capito il punto in quello che hai scritto. Quando sono nel terminale, la tastiera funziona bene (inserisce i numeri). Lo "strano" comportamento si stava verificando solo nella modalità di inserimento di Vi.
Enrico Maria De Angelis,

1
Il selettore di modalità è attivo solo nel programma che lo ha richiesto (in questo caso: vi). Quindi la tastiera funziona normalmente in altri programmi tra cui la shell. Ho aggiunto questo chiarimento alla risposta.
Dictionarics Anonymous

9

Ho risolto il problema da solo, ma vorrei sapere PERCHÉ la mia soluzione funziona. Ho deselezionato l'opzione che la freccia rossa indica nella seguente immagine accedere Questa è italiana, ma la versione inglese della stessa finestra è qui

Ma non ricordo di averlo abilitato ma è così.


La modifica è fuorviante. È falso che " Non ricordo di averlo abilitato "; al contrario sono sicuro di non averlo mai abilitato in questa finestra !
Enrico Maria De Angelis,

Inoltre, c'è stata una parte in cui ho chiesto a qualcuno di dirmi perché questa opzione ha avuto quella conseguenza, se ci sono altre conseguenze e se è possibile che l'ho abilitato con l'effetto collaterale di un errore di battitura.
Enrico Maria De Angelis,

AFAIK l'opzione è abilitata di default (almeno è abilitata anche sul mio Mac e sono abbastanza sicura di non averla abilitata deliberatamente da sola). Per quanto riguarda il tuo secondo commento: vedi l'osservazione nella cronologia delle modifiche relativa alle domande di follow-up nascoste nelle risposte.
Nohillside

1
Il riferimento è che ho sempre usato il tastierino numerico per inserire numeri in Vi. Ad ogni modo, forse l'opzione avrebbe potuto essere attivata dall'aggiornamento da Yosemite a El Capitan (sono ancora sicuro di aver usato il tastierino numerico per inserire i numeri dopo l'aggiornamento).
Enrico Maria De Angelis,

1
In precedenza era attivo. A partire da OS X 10.11 El Capitan è disattivato per impostazione predefinita. Vim sta abilitando la modalità tastiera applicativa (DECKPAM) senza fornire alcun mapping predefinito. Non sono stato in grado di scoprire perché Vim fa questo. Penso che dovrebbe fornire mappature predefinite o non abilitare DECKPAM per impostazione predefinita.
Chris Page
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.