Чому cmd-r псує Vim на mac? Що насправді намагається зробити?


19

Постійно перебирайте це, оскільки я веб-розробник, 'cmd-r' має побічний ефект від того, щоб запобігти роботі клавіш зі стрілками в будь-якому режимі, але я не можу уявити, що в цьому мета, і мені не вдалося знайти будь-яка документація щодо того, що він насправді повинен робити.

Редагувати: Мабуть, це насправді команда mac-терміналу "Надіслати скидання", тож я думаю, це зараз питання "Якій цілі служить команда відправлення скидання?" Пояснює, чому я не зміг знайти його в документах vim.

Відповіді:


16

Щоб уникнути цього роздратування, я перевстановлюю Command-R на "Ігнорувати" в картографії iTerm.

введіть тут опис зображення


Дякую. Це стало жахливо дратувати.
ThinkingInBits

10

Це трапляється зі мною, навіть коли не використовується екран, і я виявив, що можу повернутися до нормальності, очистивши термінал, що працює vim (я також протестував це за допомогою tmux, але не екрана:

:!clear

6

На це питання тут відповіли: під час запуску екрана на 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


Так, я виявив, що після того, як я опублікував, побачив, що "Команда скидання терміналу, надіслана Command + R, скидає клавіші курсору до типових.", Все одно було б чудово точно знати, чому це відбувається. Мені, чесно, найбільше цікаво дізнатися, яке призначення цієї команди є, але це не відповідає.
GlyphGryph
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.