mirror of
https://github.com/chylex/IntelliJ-IdeaVim.git
synced 2024-11-23 02:42:47 +01:00
126 lines
5.4 KiB
Plaintext
126 lines
5.4 KiB
Plaintext
*undo.txt* For IdeaVim version @VERSION@. Last change: 2006 Nov 12
|
|
|
|
|
|
IdeaVim REFERENCE MANUAL by Rick Maddy
|
|
|
|
|
|
Undo and redo *undo-redo*
|
|
|
|
The basics are explained in section |02.5| of the user manual.
|
|
|
|
1. Undo and redo commands |undo-commands|
|
|
2. Two ways of undo |undo-two-ways|
|
|
3. Remarks about undo |undo-remarks|
|
|
|
|
==============================================================================
|
|
1. Undo and redo commands *undo-commands*
|
|
|
|
<Undo> or *undo* *<Undo>* *u*
|
|
u Undo [count] changes.
|
|
|
|
*:u* *:un* *:undo*
|
|
:u[ndo] Undo one change.
|
|
|
|
*CTRL-R*
|
|
CTRL-R Redo [count] changes which were undone.
|
|
screen}
|
|
|
|
*:red* *:redo* *redo*
|
|
:red[o] Redo one change which was undone.
|
|
|
|
<!--
|
|
*U*
|
|
U Undo all latest changes on one line. {Vi: while not
|
|
moved off of it}
|
|
|
|
-->
|
|
The last changes are remembered. You can use the undo and redo commands above
|
|
to revert the text to how it was before each change. You can also apply the
|
|
changes again, getting back the text before the undo.
|
|
|
|
<!--
|
|
The "U" command is treated by undo/redo just like any other command. Thus a
|
|
"u" command undos a "U" command and a 'CTRL-R' command redoes it again. When
|
|
mixing "U", "u" and 'CTRL-R' you will notice that the "U" command will
|
|
restore the situation of a line to before the previous "U" command. This may
|
|
be confusing. Try it out to get used to it.
|
|
The "U" command will always mark the buffer as changed. When "U" changes the
|
|
buffer back to how it was without changes, it is still considered changed.
|
|
Use "u" to undo changes until the buffer becomes unchanged.
|
|
|
|
-->
|
|
==============================================================================
|
|
2. Two ways of undo *undo-two-ways*
|
|
|
|
<!--
|
|
How undo and redo commands work depends on the 'u' flag in 'cpoptions'.
|
|
There is the Vim way ('u' excluded) and the vi-compatible way ('u' included).
|
|
In the Vim way, "uu" undoes two changes. In the Vi-compatible way, "uu" does
|
|
nothing (undoes an undo).
|
|
|
|
'u' excluded, the Vim way:
|
|
-->
|
|
You can go back in time with the undo command. You can then go forward again
|
|
with the redo command. If you make a new change after the undo command,
|
|
the redo will not be possible anymore.
|
|
<!--
|
|
|
|
'u' included, the Vi-compatible way:
|
|
The undo command undoes the previous change, and also the previous undo command.
|
|
The redo command repeats the previous undo command. It does NOT repeat a
|
|
change command, use "." for that.
|
|
|
|
Examples Vim way Vi-compatible way ~
|
|
"uu" two times undo no-op
|
|
"u CTRL-R" no-op two times undo
|
|
|
|
Rationale: Nvi uses the "." command instead of CTRL-R. Unfortunately, this
|
|
is not Vi compatible. For example "dwdwu." in Vi deletes two
|
|
words, in Nvi it does nothing.
|
|
-->
|
|
|
|
==============================================================================
|
|
3. Remarks about undo *undo-remarks*
|
|
|
|
The number of changes that are remembered is set with the 'undolevels' option.
|
|
If it is zero, the Vi-compatible way is always used. If it is negative no
|
|
undo is possible. Use this if you are running out of memory.
|
|
|
|
Marks for the buffer ('a to 'z) are also saved and restored, together with the
|
|
text.
|
|
|
|
When all changes have been undone, the buffer is not considered to be changed.
|
|
Note that this is relative to the last write of the file. Typing "u"
|
|
after ":w" actually changes the buffer, compared to what was written, so the
|
|
buffer is considered changed then.
|
|
|
|
<!--
|
|
When manual |folding| is being used, the folds are not saved and restored.
|
|
Only changes completely within a fold will keep the fold as it was, because
|
|
the first and last line of the fold don't change.
|
|
|
|
-->
|
|
The numbered registers can also be used for undoing deletes. Each time you
|
|
delete text, it is put into register "1. The contents of register "1 are
|
|
shifted to "2, etc. The contents of register "9 are lost. You can now get
|
|
back the most recent deleted text with the put command: '"1P'. (also, if the
|
|
deleted text was the result of the last delete or copy operation, 'P' or 'p'
|
|
also works as this puts the contents of the unnamed register). You can get
|
|
back the text of three deletes ago with '"3P'.
|
|
|
|
*redo-register*
|
|
If you want to get back more than one part of deleted text, you can use a
|
|
special feature of the repeat command ".". It will increase the number of the
|
|
register used. So if you first do ""1P", the following "." will result in a
|
|
'"2P'. Repeating this will result in all numbered registers being inserted.
|
|
|
|
Example: If you deleted text with 'dd....' it can be restored with
|
|
'"1P....'.
|
|
|
|
If you don't know in which register the deleted text is, you can use the
|
|
:display command. An alternative is to try the first register with '"1P', and
|
|
if it is not what you want do 'u.'. This will remove the contents of the
|
|
first put, and repeat the put command for the second register. Repeat the
|
|
'u.' until you got what you want.
|
|
|