На це питання тут відповіли: під час запуску екрана на OSX команда + r перемикає клавіші зі стрілками в vim на всіх екранах
Скопійована відповідь:
Як хороший маленький захисник Vim, я змушений сказати вам, щоб навчитися використовувати hjkl в якості клавіш курсору. На півдорозі, вивчивши проблему, я подумав, що вона загадково вирішилася, поки я не зрозумів, що тестую за допомогою hjkl замість фактичних клавіш зі стрілками.
У будь-якому випадку, тепер для реальної відповіді.
Замість того, щоб вимкнути всі екрани та перезапустити, ви можете скористатися можливістю екрана переміщатися між терміналами. Натисніть CTRL + A CTRL + D, щоб відключити екран від терміналу, потім запустіть екран -D -R, щоб повторно вкласти. Це має змусити ваші клавіші зі стрілками працювати знову.
Якщо ви не на екрані, а просто у Vim, ви можете CTRL + Z і ввести fg для того ж ефекту.
Ви також можете вирішити проблему з клавішею курсору у Vim, але скидання могло змінити інші параметри терміналу, тому робити це безпечніше, як описано вище, щоб не виникнути інші випадкові проблеми з дисплеєм / клавіатурою. Якщо ви хочете все-таки перепланувати, ось вони:
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>
Подробиці:
І Vim, і екран використовують бібліотеку ncurses для управління терміналом. Одне з тих, що відбувається, коли береться за контроль над терміналом, сумісним з VT100, - це перемикання клавіш зі стрілками в «режим програми», що змінює коди, які вони випускають. Наприклад, клавіша зі стрілкою вгору змінюється з Esc [A на Esc O A. Код управління VT100, який випускає для цього, це Esc [? 1 год. Команда скидання терміналу, надіслана Command + R, скидає клавіші курсору до стандартних.
Екран від’єднання та повторного приєднання призводить до того, що ncurses поверне контроль над терміналом, який повторно використовує всі налаштування, які йому подобаються, тому, мабуть, це найпотужніший і надійний спосіб відновити речі в нормі.
Коди управління VT100: http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm