В Vim я слишком много отменил. Как мне отменить это (то есть повторить)?
В Vim я слишком много отменил. Как мне отменить это (то есть повторить)?
Ответы:
Ctrl+r
Cmd + r
все испортилось ? Это конечно делает что-то странное; но Ctrl + r
у меня все работало нормально (Mac + tmux + vim)
Также проверьте :undolist
, который предлагает несколько путей в истории отмены. Это полезно, если вы случайно напечатали что-то после слишком большого удаления.
:undolist
и набрать :undo 178
(скажем), чтобы перемотать к шагу 178.
:undolist
?
Используйте :earlier
/ :later
. Чтобы повторить все, что вам нужно сделать
later 9999999d
(при условии , что вы первый редактировали файл в наиболее 9999999 дней назад), или, если вы помните разницу между текущим состоянием и отменами нуждались, использованием Nh
, Nm
или в Ns
течение нескольких часов, минут и секунд соответственно. + :later N<CR>
<=> Ng+
и :later Nf
для записи в файл.
:later
работал для меня vi
(не vim - искал "vi" в Google, но все результаты для "vim"), спасибо!
vi
команда, это символическая ссылка на исполняемый файл vim или его копию. Хотя и не везде.
vim: command not found
. Следующее, что я делаю, это alias vim=vi
потому, что я набираю его так автоматически, но, тем не менее, это обычный старый vi. Кроме того, redo (ctrl + r) работал бы правильно, если бы vi был псевдонимом для 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}
В командном режиме используйте Uклавишу, чтобы отменить и Ctrl+, rчтобы повторить. Посмотрите на http://www.vim.org/htmldoc/undo.html .
Сначала нажмите Escклавишу, чтобы выйти из режима редактирования.
Затем,
Для отмены используйте uклавишу столько раз, сколько вы хотите отменить.
Для повтора используйтеCtrlr клавишу +
Обратитесь к разделам «отменить» и «повторить» документа Vim .
: red [o] (Вернуть одно изменение, которое было отменено) и {count} Ctrl+r (Вернуть {изменение}, которое было отменено) оба в порядке.
Кроме того ,: ранее {count} (перейти к более старому текстовому состоянию {count} раз) всегда может заменить отмену и повтор.
CTRL+r
«R» в нижнем регистре.
^r
и ^R
, и Vim следует за этим.
^X
(где X
может быть любая буква).
Используете VsVim для Visual Studio?
Я сталкивался с этим, когда экспериментировал с VsVim, который предоставляет привязки для команд Vim в Visual Studio .
Я знаю об этом Ctrlrв самом Vim, но эта конкретная привязка не работает в VsVim (по крайней мере, в моей настройке?).
Что делает работу , однако, является команда :red
. Это немного больше хлопот, чем выше, но все же хорошо, когда вам это действительно нужно.
Практически говоря, :undolist
это сложно использовать, :earlier
а :later
отслеживание изменений в Vim и времени можно использовать только для исправлений курса.
Учитывая это, я прибегаю к плагину, который объединяет эти функции, чтобы обеспечить визуальное дерево просматриваемых отмен, называемое «Gundo».
Очевидно, что это то, что нужно использовать только тогда, когда вам нужно детальное исправление, или вы не уверены в точном состоянии документа, к которому хотите вернуться. Смотрите: Gundo. График вашего дерева отмены Vim в стиле