Как вернуться (ctrl + z) в vi / vim

108

В обычных текстовых редакторах [при всем уважении к Vim] есть ярлык Ctrl+, Zкогда вы сделали что-то неприятное и хотите вернуться к предыдущей версии текста. Как кнопка НАЗАД в Word. Интересно, как добиться такого поведения в Vim.

Slazer
источник
1
Документация Vim также очень хороша - например, :help undoвы найдете свой ответ на этот вопрос.
Крис Морган,
2
прежде чем полностью погрузиться в vim, я предлагаю вам пройти (интерактивное) руководство
karth
1
Спасибо всем и извините за этот вопрос. Обязательно прочтите в следующий раз.
Slazer
1
в linux CTRL-Z в vi / vim / gvim означает выход на консоль или перевод в фоновый режим. затем вы делаете все, что хотите на консоли, и набираете fg (передний план), чтобы вернуться в сеанс редактирования vim.
mancocapac

Ответы:

191

Вы можете использовать uкнопку, чтобы отменить последнее изменение. (И Ctrl+ Rпеределать).

Подробнее об этом: http://vim.wikia.com/wiki/Undo_and_Redo

Qiau
источник
2
Я сопоставляю U для повтора, чтобы я мог быстро отменить / повторить, всю историю редактирования, если это необходимо, в vimrc: nnoremap U <CR>
NeilG
10

Ответ, u(и многие другие) в $ vimtutor.

Ромэн
источник
только потому, что я никогда не слышал vimtutorраньше
Пайуско
4

Но вот уловка. Вы можете сопоставить клавиши Ctrl+ Z. Этого можно добиться, отредактировав .vimrcфайл. Добавьте следующие строки в файл .vimrc.

nnoremap <c-z> :u<CR>      " Avoid using this**
inoremap <c-z> <c-o>:u<CR>

Возможно, это не лучший способ, но его можно использовать.

** Ctrl+ Zиспользуется в Linux для приостановки текущей программы / процесса.

madD7
источник
1

Просто в обычном режиме нажмите:

  • u- отменить ,
  • Ctrl+ r- повторное выполнение изменения , которые были расстегнуты ( отменить в отменах ).

Отменить и повторить

simhumileco
источник
Я знаю, что большая часть моего ответа дублируется с уже присутствующими, но добавленная стоимость моего ответа - это повторить как Ctrl + r(нижний регистр r) на основе документации. Никто раньше не клал его сюда. Кроме того, я постарался дать максимально четкий ответ.
simhumileco
0

На Mac вы также можете использовать команду Z, и она будет отменена. Я не уверен, почему, но иногда он останавливается, и если вы, как я и vimtutor, находятся в конце этого длинного списка вещей, которые вам нужно изучить, тогда вы можете просто закрыть окно и снова открыть его, и все должно работать нормально.

Белка
источник
0

У меня была такая же проблема прямо сейчас, и я решил ее. Он вам больше не нужен, поэтому я пишу для других:

если вы используете gvim в Windows , просто добавьте это в свой _vimrc : $VIMRUNTIME/mswin.vim behave mswin

иначе просто используйте imap ...

Cloud Duan
источник