Tombol keypad numerik dalam vi memasukkan huruf, bukan angka

8

Saya baru mengenal vi. Sebenarnya saya menggunakannya hanya untuk memodifikasi file teks kecil. Saya punya masalah serius dan tidak biasa, saya pikir, dengan tombol angka, sebagai berikut: Saya menulis vi INdan menekan enter. Ini membuat saya akses ke file bernama IN. Lalu saya menggunakan tombol panah (atau hjkl) untuk memindahkan kursor melalui file. Lalu saya tekan iuntuk mengaktifkan insert modedan menulis. Inilah masalahnya: keypad numerik tidak berfungsi dengan baik, karena saya dapat pqrstuvwxylketika saya menekan 0123456789+( ,.-*/=masih berfungsi).

Enrico Maria De Angelis
sumber
1
Mengapa pertanyaan saya dimigrasikan di sini? Masalahnya bukan tentang Mac tetapi tentang Vi. Bahkan, seperti yang saya katakan, tombol numerik tidak berfungsi hanya di Vi . Sebaliknya ia selalu bekerja di terminal atau di aplikasi lain.
Enrico Maria De Angelis

Jawaban:

8

Sejauh yang saya mengerti, ada dua mode yang memungkinkan untuk nomor keypad terminal VT100: mode keypad Numeric normal dan mode keypad Aplikasi . Yang terakhir memiliki tombol keypad mengirim bukan angka, tetapi urutan melarikan diri. Misalnya, tombol '1' mengirim <ESC>[Oq, tombol '2' mengirimkan <ESC>[Or, yang hanya huruf q dan r yang terlihat di layar. Ini adalah urutan kontrol yang dapat ditafsirkan oleh program (host) sebagai perintah untuk beberapa fitur. Jadi, dalam mode ini, tombol keypad praktis digunakan sebagai tombol fungsi tambahan.

Sesuai dengan standar terminal VT100, sebuah program (host) dapat 'meminta' terminal untuk mengganti keypad ke mode aplikasi. (Ia dapat melakukan ini dengan mengirimkan urutan kontrol spesifik ke terminal.) Vi dan Vim diketahui melakukan ini. Switch mode tidak universal, tetapi pada program ke basis program: itu hanya aktif dalam program yang memintanya. Dalam program lain, termasuk shell, keypad tetap dalam mode angka. Pengaturan default di Terminal.app OS X adalah untuk memungkinkan program beralih ke mode Aplikasi, yang sekarang Anda nonaktifkan dengan tidak mencentang opsi "Izinkan mode keypad aplikasi VT100". (BTW: Di OS X 10.7 opsi ini diberi label "Perilaku tombol VT100 yang ketat".)

Lihat juga:

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

Dictionarics Anonymous
sumber
Mungkin saya tidak mengerti maksud dari apa yang Anda tulis. Ketika saya berada di terminal, tombol berfungsi dengan baik (memasukkan angka). Perilaku "aneh" itu terjadi hanya dalam mode memasukkan Vi.
Enrico Maria De Angelis
1
Sakelar mode hanya aktif dalam program yang memintanya (dalam hal ini: vi). Jadi keypad berfungsi normal di program lain termasuk shell. Saya telah menambahkan klarifikasi ini ke jawabannya.
Dictionarics Anonymous
9

Saya memecahkan masalah sendiri, tetapi saya ingin tahu MENGAPA solusi saya bekerja. Saya tidak memilih opsi yang ditunjukkan panah merah pada gambar berikut memasukkan Ini adalah bahasa Italia, tetapi versi bahasa Inggris dari jendela yang sama ada di sini

Tapi saya tidak ingat mengaktifkan ini tetapi ada itu.

Enrico Maria De Angelis
sumber
Hasil edit menyesatkan. Adalah salah bahwa " Saya tidak ingat mengaktifkan ini "; sebaliknya saya yakin saya tidak pernah mengaktifkannya di jendela ini !
Enrico Maria De Angelis
Selain itu, ada bagian di mana saya meminta seseorang untuk memberi tahu saya mengapa opsi ini memiliki konsekuensi itu, jika ada konsekuensi lain, dan jika mungkin saya mengaktifkannya dengan efek samping kesalahan ketik.
Enrico Maria De Angelis
AFAIK opsi diaktifkan secara default (setidaknya itu diaktifkan di Mac saya juga dan saya cukup yakin saya tidak sengaja mengaktifkannya sendiri). Adapun komentar kedua Anda: lihat komentar di edit sejarah tentang pertanyaan tindak lanjut yang tersembunyi dalam jawaban.
nohillside
1
Referensi adalah bahwa saya selalu menggunakan keypad numerik untuk memasukkan angka di Vi. Ngomong-ngomong, mungkin opsi tersebut bisa diaktifkan dengan peningkatan dari Yosemite ke El Capitan (masih saya yakin saya menggunakan tombol angka untuk memasukkan angka setelah peningkatan).
Enrico Maria De Angelis
1
Dulu aktif secara default. Mulai di OS X 10.11 El Capitan tidak aktif secara default. Vim mengaktifkan Mode Keypad Aplikasi (DECKPAM) tanpa memberikan pemetaan default apa pun. Saya belum dapat menemukan mengapa Vim melakukan ini. Saya pikir itu harus menyediakan pemetaan default atau tidak mengaktifkan DECKPAM secara default.
Chris Page