Як маленький хороший захисник Vim, я змушений сказати вам, щоб навчитися використовувати hjkl в якості клавіш курсору. На півдорозі, вивчивши проблему, я подумав, що вона загадково вирішилася, поки я не зрозумів, що тестую за допомогою hjkl замість фактичних клавіш зі стрілками.
У будь-якому випадку, тепер для реальної відповіді.
Замість того, щоб вимкнути всі екрани та перезапустити, ви можете скористатися можливістю екрана переміщатися між терміналами. Натисніть, CTRL+A
CTRL+D
щоб відключити екран від свого терміналу, а потім запустіть screen -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
h
. Команда скидання терміналу, надіслана Command + R, скидає клавіші курсору до стандартних.
Екран від’єднання та повторного приєднання призводить до того, що ncurses поверне контроль над терміналом, який повторно використовує всі налаштування, які йому подобаються, тому, мабуть, це найпотужніший і надійний спосіб відновити речі в нормі.
Коди управління VT100: http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm