Відповіді:
Ви шукаєте визначення undo-blocks
.
Від :h undo-blocks
:
Одна команда скасування зазвичай скасовує набрану команду, незалежно від кількості змін, які вносить команда. Ця послідовність не змінених змін формує блок скасування. Таким чином, якщо набрана клавіша (и) викликає функцію, всі команди функції відміняються разом.
Цей самий блок використовується для redo
. Від :h redo
:
Останні зміни запам’ятовуються. Ви можете скористатися командами скасування та повторення вище, щоб повернути текст таким, яким він був до кожної зміни. Ви також можете застосувати зміни знову, повертаючи текст перед скасуванням.
Модальні редагування Vim, часто розглядаються як оператор (наприклад c
, d
...) застосовується над рухом (наприклад iw
, w
, }
, ...). Як чудовий за продуктом, Vim отримує кучеряві скасування. Якщо в інших редакторах доводиться робити здогадки, щоб зробити багато невеликих скасувань у блоки для скасування, Vim робить це природно. Інший побічний ефект полягає в тому, що це дає вам оператора повторення .
(він же називається командою крапки).
У вашому питанні конкретно згадуються натискання клавіш, тому я припускаю, що ви хочете знати, як скасувати невеликі зміни під час вставки. Відповідь - це не "шлях Vim". "Шлях Vim" означає, що ви будете знаходитись у режимі вставки для короткого зйомки одночасно. Це означає, що при допущенні помилок у режимі вставки ви часто просто виходите в звичайний режим і виправляєте текст або просто робите скасування u
, і переписуєте текст.
Іноді виникає необхідність розділити блок скасування, перебуваючи у режимі вставки. Це можна здійснити через <c-g>u
режим вставки. Див. :h :undoj
Та :h undo-blocks
для отримання додаткової інформації.
Для отримання додаткової допомоги пропоную наступне:
:h undo-blocks
:h :undoj
:h undo-tree
:h persistent-undo
:h undo.txt
На цю тему також є кілька скріншотів:
Ви можете подумати про це і таким чином: кожен раз, коли ви переходите в режим вставки, щоб редагувати текст, і ви натискаєте Esc, це утворюватиме блок. Якщо ви спробуєте скасувати цей блок, ви перейдете до того ж положення, перш ніж увійшли в режим вставки.
Тому ви можете "зберегти" свої зміни, просто час від часу виходивши з режиму вставки: скажімо, ви переходите до режиму вставки та пишете функцію. Ви можете продовжити кодування та перейти до наступної функції, проте іноді бажано повернутися до звичайного режиму та знову перейти на режим вставки. Таким чином, ви можете структурувати свій код простим способом, і якщо вам потрібно повернутися назад, ви можете знати, в якому положенні ви опинитеся.
Примітка: якщо ви використовуєте стрілки для переміщення, це як якщо б ви натиснули Esc+ [ hjkl]
CTRL-G u
в режимі вставки, що корисно, якщо у вас є макроси режиму вставки.