Zifferntasten in vi fügen Buchstaben anstelle von Zahlen ein

8

Ich bin neu in vi. Eigentlich benutze ich es nur, um kleine Textdateien zu ändern. Ich habe ein ernstes und ungewöhnliches Problem mit dem Ziffernblock: Ich schreibe vi INund drücke die Eingabetaste. Dadurch kann ich auf die genannte Datei zugreifen IN. Dann benutze ich Pfeiltasten (oder hjkl), um den Cursor durch die Datei zu bewegen. Dann drücke ich um das izu aktivieren insert modeund zu schreiben. Hier kommt das Problem: Der Ziffernblock funktioniert nicht richtig, da ich ihn bekomme, pqrstuvwxylwenn ich drücke 0123456789+( ,.-*/=funktioniert immer noch).

Enrico Maria De Angelis
quelle
1
Warum wurde meine Frage hierher migriert? Das Problem betraf nicht den Mac, sondern Vi. Wie ich bereits sagte, funktionierte der Ziffernblock nicht nur in Vi . Im Gegenteil, es hat immer im Terminal oder in anderen Anwendungen funktioniert.
Enrico Maria De Angelis

Antworten:

8

Soweit ich weiß, gibt es zwei mögliche Modi für Zifferntastaturen von VT100-Terminals: den normalen Ziffernblockmodus und den Anwendungstastaturmodus . Letzteres lässt die Tastaturtasten keine Zahlen senden, sondern Escape-Sequenzen. ZB sendet <ESC>[Oqdie Taste '1', die Taste '2' <ESC>[Or, von denen nur die Buchstaben q und r auf dem Bildschirm sichtbar sind. Dies sind Steuersequenzen, die das Programm (Host) möglicherweise als Befehle für einige Funktionen interpretiert. In diesem Modus werden die Tastaturtasten praktisch als zusätzliche Funktionstasten verwendet.

Gemäß dem Terminalstandard VT100 kann ein Programm (Host) das Terminal auffordern, die Tastatur in den Anwendungsmodus zu schalten. (Dies kann durch Senden einer bestimmten Steuersequenz an das Terminal erfolgen.) Es ist bekannt, dass Vi und Vim dies tun. Der Modusschalter ist nicht universell, sondern von Programm zu Programm: Er ist nur in dem Programm aktiv, das ihn angefordert hat. In anderen Programmen, einschließlich der Shell, bleibt die Tastatur im Zahlenmodus. Die Standardeinstellung in Terminal.app von OS X besteht darin, dass Programme in den Anwendungsmodus wechseln können. Dies deaktivieren Sie jetzt, indem Sie die Option "VT100-Anwendungstastaturmodus zulassen" deaktivieren. (Übrigens: In OS X 10.7 ist diese Option mit "Striktes Verhalten der VT100-Tastatur" gekennzeichnet.)

Siehe auch:

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

Dictionarics Anonymous
quelle
Vielleicht habe ich nicht verstanden, was Sie geschrieben haben. Wenn ich im Terminal bin, funktioniert die Tastatur gut (fügt Zahlen ein). Das "seltsame" Verhalten trat nur im Einfügemodus von Vi auf.
Enrico Maria De Angelis
1
Der Modusschalter ist nur in dem Programm aktiv, das ihn angefordert hat (in diesem Fall: vi). Die Tastatur funktioniert also normal in anderen Programmen, einschließlich der Shell. Ich habe diese Klarstellung zur Antwort hinzugefügt.
Dictionarics Anonymous
9

Ich habe das Problem selbst gelöst, möchte aber wissen, WARUM meine Lösung funktioniert. Ich habe die Option deaktiviert, die der rote Pfeil im folgenden Bild anzeigt. eingeben Dies ist italienisch, aber die englische Version desselben Fensters ist hier

Aber ich erinnere mich nicht daran, dies aktiviert zu haben, aber da ist es.

Enrico Maria De Angelis
quelle
Die Bearbeitung ist irreführend. Es ist falsch, dass " ich mich nicht daran erinnere, dies aktiviert zu haben "; im Gegenteil, ich bin sicher, ich habe es in diesem Fenster nie aktiviert !
Enrico Maria De Angelis
Außerdem gab es einen Teil, in dem ich jemanden bat, mir zu sagen, warum diese Option diese Konsequenz hatte, ob es andere Konsequenzen gibt und ob es möglich ist, dass ich sie durch die Nebenwirkung eines Tippfehlers aktiviert habe.
Enrico Maria De Angelis
AFAIK Die Option ist standardmäßig aktiviert (zumindest ist sie auch auf meinem Mac aktiviert und ich bin mir ziemlich sicher, dass ich sie nicht absichtlich selbst aktiviert habe). Zu Ihrem zweiten Kommentar: Beachten Sie die Anmerkung im Bearbeitungsverlauf zu den in den Antworten versteckten Folgefragen.
Nohillside
1
Die Referenz ist, dass ich immer einen Ziffernblock verwendet habe, um Zahlen in Vi einzufügen. Wie auch immer, vielleicht könnte die Option durch das Upgrade von Yosemite auf El Capitan aktiviert worden sein (ich bin mir immer noch sicher, dass ich die Zifferntastatur verwendet habe, um die Zahlen nach dem Upgrade einzufügen ).
Enrico Maria De Angelis
1
Früher war es standardmäßig aktiviert. Ab OS X 10.11 El Capitan ist es standardmäßig deaktiviert. Vim aktiviert den Application Keypad Mode (DECKPAM), ohne Standardzuordnungen bereitzustellen. Ich konnte nicht herausfinden, warum Vim dies tut. Ich denke, es sollte entweder Standardzuordnungen liefern oder DECKPAM nicht standardmäßig aktivieren.
Chris Seite