Як переключитись між режимом команди та вставки у Vim?


87

Я щойно почав використовувати Vim як IDE. Я вже деякий час використовував його як тестовий редактор, тому мені не доводилося дуже часто переходити до командного режиму. Але, оскільки я програмую на Java, мені потрібно перейти в командний режим, щоб створити файл, скомпілювати / запустити його ... тощо.

Проблема в тому, що мені потрібен хороший спосіб перемикання між двома режимами.

Я заглянув в Інтернет, і там написано, що <Esc>ключ повинен це робити, але це не працює для мене (можливо, це не для gVim? Не знаю чому.)

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


2
Esc, безумовно, є правильним ключем для завершення вставки. Вставку можна запустити різними способами. Малі букви i починають вставляти біля вашого курсору, великі літери I починають вставляти на початку рядка тощо
Вон Катон

Починаючи з порожнього файлу, наступні символи повинні дати вам файл із словом "привіт": ihello<ESC>:w hello.txt<ENTER>
Вон Катон

8
ctrl-[працює як заміна Esc на багатьох клавіатурах.
Вон Катон

Відповіді:


52

Схоже, ваш Vim запускається в простому режимі . Див :help easy.

Це трапляється, коли Vim викликається з -yаргументом або як evim, або, можливо, у вас є :set insertmodeдесь у вашій .vimrcконфігурації. Знайдіть джерело та вимкніть його; тимчасово це також можна зробити за допомогою Ctrl+ O :set noim Enter.


Я думаю, це було все. У моєму файлі було ввімкнено режим вставки. Після того, як я його видалив, клавіша Escape працює ідеально. Дякую!
Ravish Chawla

8
це простий режим !?
Stachu

5
Vim легкий режим, тепер це оксиморон. Тут можна вийти з vim?
Давос,

1
@Davos - це режим, в якому він запускається у режимі вставки, тому, за іронією долі, це режим, де неможливо вийти з vim: p "нормальний режим" набагато простіший, просто alt + :, x XD
Fuseteam

115

Натискання ESCвиходить із режиму вставки в звичайний режим, де ви можете натиснути, :щоб ввести команду. Натисніть iще раз, щоб повернутися, щоб вставити режим, і ви готові йти.

Я не гуру Vim, тому хтось інший може бути досвідченішим і запропонувати вам інші варіанти.


3
Для більшості з нас, але прийнята відповідь мала відповідь на конкретну проблему.
Саул Аксель Мартінес Ортіс

19

Про це було згадано в інших питаннях , але ctrl + [це еквівалентно для ESCвсіх клавіатур.


Я ніколи цього не знав, корисно, коли клавіша втечі не підтримується
shuva

Ого, дякую за цю інформацію! Копіювання послідовності натискань клавіш Tmux тепер має набагато більше сенсу.
Thomas Legris,

4

Використовуючи jj

У моєму випадку параметр .vimrc (або в gVim він знаходиться _vimrc) нижче.

inoremap jj <Esc>   """ jj key is <Esc> setting

Це звичайне перепризначення. Я вважаю, що у нього невелика затримка, оскільки він чекає додаткового введення символів. Крім того, переназначте ключ capslock на esc, використовуючи щось на зразок KeyRemap4MacBook на Macbook: github.com/tekezo/KeyRemap4MacBook
Koobz

мені було простіше переназначити вкладку на esc: 3
Fuseteam

3

Виходячи з emacs, я виявив, що мені подобається ctrl +робити клавіші, і у vim я виявив, що обидва [ctrl + C]і [alt + backspace]ввійдуть у звичайний режим із режиму вставки. Ви можете спробувати і подивитися, чи не спрацює вам щось із цього.


2

Для мене проблема полягала в тому, що я перебував у режимі запису . Для виходу з режиму запису натисніть q. Потім Escпрацював, як очікували для мене.


1

Ви можете використовувати Alt + H, J, K, L для переміщення курсору в режимі вставки.


1
Ні, ти не можеш. Це, мабуть, ремап вашої конфігурації.
Саул Аксель Мартінес Ортіс,

@SaulAxelMartinezOrtiz так, ти можеш, технічно він виходить із звичайного режиму, після чого ти можеш пересуватися в звичайному режимі: p
Fuseteam

0

Існує також ще одне рішення такої проблеми, яке, на мою думку, є досить рідкісним, і ви можете зіткнутися з цим, якщо використовуєте vim на OS X Sierra. Насправді це проблема з кнопкою Esc - а не з vim. Наприклад, я не зміг вийти з повноекранного відео на YouTube за допомогою Esc, але я жив із цим кілька місяців, поки не зазнав тієї ж проблеми з vim.

Я знайшов це рішення. Якщо вам ледаче переходити за зовнішнім посиланням, допомогло вимкнення Siri та вбивство процесу в Activity Monitor.

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