Введение
Вы когда-нибудь оказывались в ситуации, когда вы случайно удалили строку или передумали об изменении и хотите отменить изменения?
В этой статье мы покажем вам, как отменить и повторить изменения в Vim/Vi.
Vi — это облегченный редактор, существующий с момента появления Unix, а Vim — это улучшенная версия Vi, включающая множество дополнительных функций и опций.
Vi или Vim по умолчанию предустановлены в macOS и почти во всех дистрибутивах Linux. Знание основ Vim может оказаться особенно полезным, когда вы окажетесь в ситуации, когда ваш любимый редактор недоступен.
Отменить изменения в Vim/Vi
Vim отслеживает все изменения, сделанные в текущем сеансе. Команда «Отменить» отменяет одно или несколько изменений в том порядке, в котором они были сделаны.
Чтобы отменить изменения в Vim и Vi, используйте команды u
, :u
или :undo
:
- Если вы находитесь в режиме вставки или любом другом режиме, нажмите клавишу
Esc
, чтобы вернуться в обычный режим, также известный как командный режим. - Введите
u
, чтобы отменить последнее изменение. В Vim командаu
также принимает квантификаторы. Например, если вы хотите отменить последние четыре изменения, вы должны использовать4u
.
Убедитесь, что вы u
команду в нижнем регистре, а не в верхнем регистре U
, что отменяет все последние изменения в одной строке. Если вы случайно напечатаете U
, вы можете отменить изменение с помощью u
.
Используйте команду «Отменить», чтобы отменить изменения, внесенные любой другой командой, например удаление, вставка, поиск и замена и т. д.
При работе в режиме вставки все изменения текста рассматриваются как запись в дереве отмены. Например, если вы переключитесь в режим вставки и введете пять строк, а затем вернетесь в обычный режим и нажмите u
, чтобы отменить изменение, все пять строк будут удалены.
Повторить изменения в Vim/Vi
Функция повтора является противоположностью отмены; позволяет отменить предыдущее действие.
Чтобы повторить изменение в Vim и Vi, используйте команду Ctrl-R
или :redo
:
- Нажмите клавишу
Esc
, чтобы вернуться в обычный режим. - Используйте
Ctrl-R
(удерживайтеCtrl
и нажмитеr
), чтобы повторить последнее изменение. В Vim вы также можете использовать квантификаторы. Например, если вы хотите повторить последние четыре изменения, введите4Ctrl-R
.
Каждая команда отмены может быть отменена командой повтора.
Заключение
При работе с текстовыми файлами при редактировании часто допускаются ошибки, например случайное удаление строки или внесение непреднамеренных изменений. Чтобы отменить изменение типа Vim/u
и вернуть отмененное изменение, используйте последовательность клавиш Ctrl-R
.
Vim также поддерживает ветки отмены.
Кроме того, вы также можете использовать команды :earlier
и :later
для перемещения вперед и назад во времени посредством внесенных вами изменений. Например, ввод :earlier 10m
отменит изменения, внесенные за последние десять минут, а ввод :later 5s
отменит изменения, внесенные пять секунд назад.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.