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


108

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



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


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


4

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

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

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

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


1

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

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

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


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

0

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


0

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.