під час запуску екрана на OSX, команда + r перемикає клавіші зі стрілками in vim на всіх екранах


15

Як ви це розмотаєте? тому що ви весь час натискаєте команду r, щоб перезавантажити браузер, і часто ви перебуваєте в терміналі.

Оскільки я не придумав, як знову ввімкнути клавіші зі стрілками, наразі знищу всі свої екрани та перезавантажую екран, що болить.

Відповіді:


28

Як маленький хороший захисник 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


Іншою проблемою може бути тип термінала, що плутає vim, див. Messed up keys in vim під час запуску в tmux
kynan

дякую за це рішення! це переймає лайно від мене як веб-розробника. у браузері ви багато натискаєте на cmd-r, щоб оновити екран, а іноді я, мабуть, випадково потрапляв у cmd-r in vim. Я не міг зрозуміти, чому дотепер мої клавіші зі стрілками стираються. а для вас hjkl пуристів там, головна причина, що я не використовую hjkl, полягає в тому, що вони не доступні для переміщення курсору у режимі вставки. вирішити цю проблему для мене, і я перегляну.
rev


1

Якщо ви використовуєте iTerm, ви можете повернути свій сеанс vim, натиснувши command+dіcommand+w

Чому?

command+d розділить термінальну панель, магічно відновивши ту, з якої ви прийшли.

command+w тепер закриє ту розділену панель, яку ви щойно відкрили.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.