Klawisze numeryczne w vi wstawiają litery zamiast cyfr

8

Jestem nowy w vi. Właściwie używam go tylko do modyfikowania małych plików tekstowych. Mam poważny i niezwykły, jak sądzę, problem z klawiaturą numeryczną, jak następuje: piszę vi INi wciskam enter. Dzięki temu mam dostęp do pliku o nazwie IN. Następnie używam klawiszy strzałek (lub hjkl), aby przesuwać kursor przez plik. Następnie naciskam, iaby aktywować insert modei pisać. Nadchodzi problem: klawiatura numeryczna nie działa poprawnie, ponieważ pqrstuvwxylpojawia się, gdy naciskam 0123456789+( ,.-*/=nadal działa).

Enrico Maria De Angelis
źródło
1
Dlaczego migrowano tutaj moje pytanie? Problem nie dotyczył komputera Mac, ale Vi. W rzeczywistości, jak powiedziałem, klawiatura numeryczna nie działała tylko w Vi . Przeciwnie, zawsze działało w terminalu lub w innych aplikacjach.
Enrico Maria De Angelis,

Odpowiedzi:

8

O ile rozumiem, istnieją dwa możliwe tryby klawiatur numerycznych terminali VT100: normalny tryb klawiatury numerycznej i tryb klawiatury aplikacji . Ten ostatni ma klawisze klawiatury, które nie wysyłają liczb, ale sekwencje specjalne. Na przykład, klawisz „1” wysyła <ESC>[Oq, klawisz „2” wysyła <ESC>[Or, z których tylko litery q i r są widoczne na ekranie. Są to sekwencje kontrolne, które program (host) może interpretować jako polecenia niektórych funkcji. W tym trybie klawisze klawiatury są praktycznie używane jako dodatkowe klawisze funkcyjne.

Zgodnie ze standardem terminalu VT100 program (host) może „poprosić” terminal o przełączenie klawiatury do trybu aplikacji. (Można to zrobić, wysyłając określoną sekwencję kontrolną do terminala). Vi i Vim są znani z tego. Przełącznik trybu nie jest uniwersalny, ale dotyczy programu do programowania: jest aktywny tylko w programie, który tego zażądał. W innych programach, w tym w powłoce, klawiatura pozostaje w trybie numerycznym. Domyślnym ustawieniem w Terminal.app OS X jest zezwolenie programom na przejście do trybu aplikacji, który został wyłączony przez odznaczenie opcji „Zezwalaj na tryb klawiatury aplikacji VT100”. (BTW: w OS X 10.7 ta opcja jest oznaczona jako „Surowe zachowanie klawiatury VT100”).

Zobacz też:

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

Anonimowi słowniki
źródło
Może nie rozumiem, co napisałeś. Kiedy jestem w terminalu, klawiatura działa dobrze (wstawia cyfry). „Dziwne” zachowanie miało miejsce tylko w trybie wstawiania Vi.
Enrico Maria De Angelis,
1
Przełącznik trybu jest aktywny tylko w programie, który go zażądał (w tym przypadku: vi). Klawiatura działa więc normalnie w innych programach, w tym w powłoce. Do odpowiedzi dodałem to wyjaśnienie.
Anonimowi słownikowi
9

Sam rozwiązałem problem, ale chciałbym wiedzieć, DLACZEGO moje rozwiązanie działa. Odznaczam opcję, którą czerwona strzałka wskazuje na poniższym obrazku wchodzić To jest włoski, ale angielska wersja tego samego okna jest tutaj

Ale nie pamiętam, aby to umożliwić, ale tak jest.

Enrico Maria De Angelis
źródło
Edycja wprowadza w błąd. To nieprawda, że ​​„ nie pamiętam, aby to umożliwić ”; wręcz przeciwnie, jestem pewien, że nigdy nie włączyłem go w tym oknie !
Enrico Maria De Angelis,
Co więcej, była część, w której poprosiłem kogoś, aby powiedział mi, dlaczego ta opcja ma taką konsekwencję, jeśli są inne konsekwencje i czy jest możliwe, że włączyłem ją przez efekt uboczny literówki.
Enrico Maria De Angelis
AFAIK opcja jest domyślnie włączona (przynajmniej jest włączona również na moim Macu i jestem całkiem pewien, że sam celowo nie włączyłem). Jeśli chodzi o twój drugi komentarz: zobacz uwagę w historii edycji dotyczącą dalszych pytań ukrytych w odpowiedziach.
nohillside
1
Odnoszę się do tego, że zawsze używałem klawiatury numerycznej do wstawiania liczb w Vi. W każdym razie może ta opcja mogła zostać aktywowana przez aktualizację z Yosemite do El Capitan (wciąż jestem pewien, że użyłem klawiatury numerycznej, aby wstawić cyfry po aktualizacji).
Enrico Maria De Angelis,
1
Kiedyś był domyślnie włączony. Począwszy od systemu OS X 10.11 El Capitan jest domyślnie wyłączony. Vim włącza tryb klawiatury aplikacji (DECKPAM) bez domyślnych mapowań. Nie byłem w stanie odkryć, dlaczego Vim to robi. Myślę, że powinien albo dostarczyć domyślne odwzorowania, albo domyślnie nie włączać DECKPAM.
Chris Page