так как я уже собрал 2 близких голоса, я думаю, что это относится и к тому, что vim - редактор программ.
flybywire
28
Я согласен, это связано с программированием, и это настоящий вопрос.
DigitalRoss,
41
Кто-то здесь идет вокруг и отмечает каждый вопрос Vim как «принадлежащий SU», несмотря на то, что сообщество давно решило, что Vim принадлежит к SO, поскольку это инструмент программирования.
Брайан Карпер
@Brian: У вас есть ссылка на документ, где был достигнут этот консенсус?
слишком много php
12
meta.stackexchange.com/questions/20251/… но я вспоминаю, что это произошло в прошлом году. Vim / Emacs являются IDE. Более того, языки, используемые в обоих конфигурационных файлах, являются языками сценариев с полным набором Тьюринга, поэтому сам процесс настройки Vim сам по себе является программированием.
Я просто хотел бы выпустить плагин undoTree, очень круто для тех времен, когда вы, казалось, облажались с кучей отмен и повторов.
Джейк Селлерс
3
Если я читаю о vi, то мои пальцы просто действуют сами по себе. Команды vi не работают со стековым потоком. :-)
ciscogambo
2
Примечание для пользователей Mac: Ctrl + r в терминале Mac разрушит ваш день в vim. Не знаю, какую комбинацию клавиш в терминале Mac нужно отменить, но это определенно НЕ Ctrl + r!
17
@tpartee Я только что использовал Ctrl + r в vim в терминальном приложении macOS - здесь нет проблем.
Джейс
3
Может быть, @tpartee имел в виду, что Cmd + rвсе испортилось ? Это конечно делает что-то странное; но Ctrl + rу меня все работало нормально (Mac + tmux + vim)
dwanderson
133
Также проверьте :undolist, который предлагает несколько путей в истории отмены. Это полезно, если вы случайно напечатали что-то после слишком большого удаления.
Используйте :earlier/ :later. Чтобы повторить все, что вам нужно сделать
later 9999999d
(при условии , что вы первый редактировали файл в наиболее 9999999 дней назад), или, если вы помните разницу между текущим состоянием и отменами нуждались, использованием Nh, Nmили в Nsтечение нескольких часов, минут и секунд соответственно. + :later N<CR><=> Ng+и :later Nfдля записи в файл.
:laterработал для меня vi(не vim - искал "vi" в Google, но все результаты для "vim"), спасибо!
Люк
@Luc Почти везде, где у вас есть viкоманда, это символическая ссылка на исполняемый файл vim или его копию. Хотя и не везде.
ZyX
@ ZyX Я бы хотел, чтобы это было правдой. Я использую vi только после того, как bash бросает a vim: command not found. Следующее, что я делаю, это alias vim=viпотому, что я набираю его так автоматически, но, тем не менее, это обычный старый vi. Кроме того, redo (ctrl + r) работал бы правильно, если бы vi был псевдонимом для vim.
Люк
2
9999999d - это 27395 лет назад. Я предполагаю, что функция отмены не была реализована в vi в то время. Возможно, вы захотите сэкономить немного времени и набрать разумное число. 9999d соответствует 27 годам, 999d - 2,7 года. Я думаю, в большинстве случаев этого достаточно ...
<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}
Понижено, потому что вопрос задает именно vim, а не Visual Studio.
Джон фон Нейман
3
@JohnVonNeumann Это будет связано с Vim, или по крайней мере ВИМ привязок, только в контексте VS. Это то, что привело меня к этому вопросу, в конце концов. Наказывать кого-то за добавление немного больше информации, кажется немного суровым и неуместным, как вы думаете, даже если это немного расширяется за пределы ОП?
Кьяртан
2
Практически говоря, :undolistэто сложно использовать, :earlierа :laterотслеживание изменений в Vim и времени можно использовать только для исправлений курса.
Учитывая это, я прибегаю к плагину, который объединяет эти функции, чтобы обеспечить визуальное дерево просматриваемых отмен, называемое «Gundo».
Очевидно, что это то, что нужно использовать только тогда, когда вам нужно детальное исправление, или вы не уверены в точном состоянии документа, к которому хотите вернуться. Смотрите: Gundo. График вашего дерева отмены Vim в стиле
Ответы:
Ctrl+r
источник
Cmd + r
все испортилось ? Это конечно делает что-то странное; ноCtrl + r
у меня все работало нормально (Mac + tmux + vim)Также проверьте
:undolist
, который предлагает несколько путей в истории отмены. Это полезно, если вы случайно напечатали что-то после слишком большого удаления.источник
:undolist
и набрать:undo 178
(скажем), чтобы перемотать к шагу 178.:undolist
?Используйте
:earlier
/:later
. Чтобы повторить все, что вам нужно сделать(при условии , что вы первый редактировали файл в наиболее 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.Vim документация
источник
В командном режиме используйте 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 в стиле
источник