There is one difference in text deletion that you should be
aware of. This difference comes from Emacs and was adopted in Viper
because we find it very useful. In Vi, if you delete a line, say, and then
another line, these two deletions are separated and are put back
separately if you use the `p
' command. In Emacs (and Viper), successive
series of deletions that are not interrupted by other commands are
lumped together, so the deleted text gets accumulated and can be put back
as one chunk. If you want to break a sequence of deletions so that the
newly deleted text could be put back separately from the previously deleted
text, you should perform a non-deleting action, e.g., move the cursor one
character in any direction.
<count> x | Delete <count> chars under and after the cursor. |
<count> X | Delete <count> chars before the cursor. |
<count> d<move> | Delete from point to endpoint of <count><move>. |
<count> dd | Delete <count> lines. |
D | The rest of the line. |
<count> <<move> | Shift the lines described by <count><move> one shiftwidth to the left (layout!). |
<count> << | Shift <count> lines one shiftwidth to the left. |