Как мне повторить (то есть "отменить отмену") в Vim? - PullRequest
642 голосов
/ 12 октября 2009

В Vim я слишком много отменил. Как мне отменить это (то есть повторить)?

Ответы [ 10 ]

844 голосов
/ 12 октября 2009

Ctrl + г

125 голосов
/ 12 октября 2009

Также проверьте :undolist, который предлагает несколько путей в истории отмен. Это полезно, если вы случайно набрали что-то после слишком большого удаления.

52 голосов
/ 23 июня 2012

Странно никто не упомянул :earlier / :later. Чтобы повторить все, что вам нужно сделать

later 9999999d

(при условии, что вы впервые отредактировали файл не более 9999999 дней назад) или, если вы помните разницу между текущим состоянием отмены и необходимым, используйте Nh, Nm или Ns для часов, минут и секунд соответственно. + :later N<CR> <=> Ng+ и :later Nf для записи в файл.

39 голосов
/ 12 октября 2009

Vim документация

<Undo>      or                  *undo* *<Undo>* *u*
u           Undo [count] changes.  {Vi: only one level}

                            *:u* *:un* *:undo*
:u[ndo]         Undo one change.  {Vi: only one level}

                            *CTRL-R*
CTRL-R          Redo [count] changes which were undone.  {Vi: redraw screen}

                            *:red* *:redo* *redo*
:red[o]         Redo one change which was undone.  {Vi: no redo}

                            *U*
U           Undo all latest changes on one line.  {Vi: while not
            moved off of it}
25 голосов
/ 12 октября 2009

В командном режиме используйте клавишу U , чтобы отменить, и Ctrl + r , чтобы повторить. Посмотрите на http://www.vim.org/htmldoc/undo.html.

12 голосов
/ 28 ноября 2015

Сначала нажмите ESC , чтобы выйти из режима редактирования.

Тогда

Для отмены используйте клавишу u столько раз, сколько вы хотите отменить.

Для повтора используйте CTRL + r ключ

10 голосов
/ 17 февраля 2014

См. «отменить» и «повторить» часть документа vim .

: красный [o] (Восстановить одно изменение, которое было отменено) и {count} Ctrl + r (Восстановить {изменение} изменений, которые были отменены ) оба в порядке.

Также : ранее {count} (Перейти к более старому текстовому состоянию {count} раз.) Всегда может заменить отмену и повтор.

4 голосов
/ 12 октября 2009

CTRL + г

"r" в нижнем регистре.

2 голосов
/ 08 февраля 2018

Использование VsVim для Visual Studio?

Я сталкивался с этим, когда экспериментировал с VsVim, который обеспечивает привязок для команд vim в Visual Studio .

Я знаю о ctrl r в самом vim, но эта конкретная привязка не работает в VsVim (по крайней мере, не в моей настройке?).

Что работает , тем не менее, это команда :red. Это немного сложнее, чем выше, но все же хорошо, когда вам это действительно нужно.

1 голос
/ 07 июня 2018

С практической точки зрения,: undolist сложно использовать, а vim: ранее и позднее отслеживание изменений можно использовать только для исправлений курса. Учитывая это, я прибегаю к плагину, который объединяет эти функции, чтобы обеспечить визуальное дерево просматриваемых отмен, называемое «gundo». Очевидно, что это то, что нужно использовать только тогда, когда вам нужно точное исправление или вы не уверены в точном состоянии документа, к которому хотите вернуться. Смотри: https://sjl.bitbucket.io/gundo.vim/

...