Цифрові клавіші клавіатури in vi вставляють літери замість цифр


8

Я новачок у vi. Насправді я використовую його просто для зміни невеликих текстових файлів. У мене є серйозна і незвичайна, я думаю, проблема з цифровою клавіатурою, як наступне: я пишу vi INі натискаю Enter. Це змушує мене отримати доступ до файла з назвою IN. Потім я використовую клавіші зі стрілками (або hjkl) для переміщення курсору по файлу. Потім натискаю, iщоб активувати insert modeта записувати. Тут виникає проблема: цифрова клавіатура не працює належним чином, оскільки я отримую, pqrstuvwxylколи натискаю 0123456789+( ,.-*/=все ще працює).


1
Чому моє запитання було переселено сюди? Проблема була не в Mac, а в Vi. Насправді, як я вже сказав, цифрова клавіатура не працювала лише у Vi . Навпаки, вона завжди працювала в терміналі або в інших додатках.
Енріко Марія Де Анджеліс

Відповіді:


8

Наскільки я розумію, існують два можливі режими для цифрових клавіатур терміналів VT100: звичайний режим цифрових клавіатур і режим клавіатури програми . В останньому є клавіші клавіатури, які надсилають не числа, а послідовності виходу. Наприклад, клавіша "1" надсилає клавішу <ESC>[Oq"2" <ESC>[Or, з якої на екрані видно лише букви q і r . Це контрольні послідовності, які програма (хост) може інтерпретувати як команди для деяких функцій. Так, у цьому режимі клавіші клавіатури практично використовуються як додаткові функціональні клавіші.

Відповідно до стандарту терміналу VT100, програма (хост) може «попросити» термінал переключити клавіатуру в режим програми. (Це можна зробити, надіславши певну керуючу послідовність до терміналу.) Віто і Vim, як відомо, роблять це. Перемикач режимів не є універсальним, але в програмі на базі програми: він активний лише в програмі, яка його запросила. В інших програмах, включаючи оболонку, клавіатура залишається в режимі числення. Налаштування за замовчуванням в Terminal.app OS X полягає в тому, щоб дозволити програмам переходити в режим програми. Це те, що ви зараз відключили, скасувавши опцію "Дозволити режим клавіатури програми VT100". (BTW: В OS X 10.7 ця опція позначена "Сувора поведінка клавіатури VT100".)

Дивись також:

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


Можливо, я не зрозумів, що ви написали. Коли я в терміналі, клавіатура працює добре (вставляє номери). "Дивна" поведінка відбувалася лише в режимі вставки Vi.
Енріко Марія Де Анджеліс

1
Перемикач режимів активний лише у програмі, яка його запросила (у цьому випадку: vi). Таким чином клавіатура працює нормально в інших програмах, включаючи оболонку. Я додав це пояснення до відповіді.
Анонімні словники

9

Я вирішив проблему самостійно, але хотів би знати, Чому моє рішення працює. Я відмінив вибір, на якому на наступному малюнку вказана червона стрілка увійти Це італійська мова, але англійська версія того ж вікна тут

Але я не пам'ятаю, щоб це ввімкнуло, але це так.


Редакція вводить в оману. Неправда, що " я не пам'ятаю, щоб це ввімкнути "; навпаки, я впевнений, що ніколи цього не вмикав у цьому вікні !
Енріко Марія Де Анджеліс

Крім того, була частина, в якій я попросив когось сказати мені, чому цей варіант мав такий наслідок, якщо є інші наслідки, і чи можливо, що я ввімкнув це за допомогою побічного ефекту.
Енріко Марія Де Анджеліс

Параметр AFAIK увімкнено за замовчуванням (принаймні, він включений і на моєму Mac, і я впевнений, що сам навмисно не ввімкнув його). Що стосується вашого другого коментаря: див. Зауваження в історії редагування щодо подальших питань, прихованих у відповідях.
nohillside

1
Посилання полягає в тому, що я завжди використовував цифрову клавіатуру для вставки цифр у Vi. У будь-якому разі, можливо, цей варіант міг бути активований оновленням з Йосеміті до Ель-Капітана (все ж я впевнений, що я використав цифрову клавіатуру для вставки цифр після оновлення).
Енріко Марія Де Анджеліс

1
Він раніше був увімкнено за замовчуванням Починаючи з OS X 10.11 El Capitan, воно за замовчуванням вимкнено. Vim вмикає прикладний режим клавіатури (DECKPAM), не надаючи відображення за замовчуванням. Мені не вдалося виявити, чому Вім так робить. Я думаю, він повинен або надавати відображення за замовчуванням, або не включати DECKPAM за замовчуванням.
Кріс Пейдж
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.