
Вы когда-нибудь оказывались в ситуации, когда вы случайно удалили строку или передумали по поводу редактирования и хотели отменить изменения?
В этой статье мы покажем вам, как отменять и повторять изменения в 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/Vi, нажмите u , а чтобы вернуть отменённое изменение, используйте сочетание клавиш Ctrl-R .
Vim также поддерживает отмену переходов .
Кроме того, вы можете использовать команды :earlier и :later для перемещения назад и вперёд во времени по внесённым вами изменениям. Например, команда :earlier 10m отменит изменения, внесённые за последние десять минут, а команда :later 5s вернёт изменения, внесённые пять секунд назад.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
Связанные руководства