Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

When I'm 'cutting' in vim, I believe there are registers that keep a history of all the recent things I've cut. How do I access those registers?

For example, let's say I cut each one of these words consecutively

  • 'Hello'
  • 'World'
  • 'And'
  • 'Vim'

Note that I'm not actually saving these edits into particular registers, I'm just using 'd' four times consecutively.

share|improve this question

2 Answers 2

up vote 41 down vote accepted
:help registers

reveals that there are 10 numbered registers ("0 to "9).

Register 0 is the most recent thing yanked; Register "1 has the most recent deleted text, register "2 the previous deletion, "3 has the deletion before that, and so on.

If you delete each line in turn, registers "1, "2, "3 and "4 will contain "Vim", "And", "World" & "Hello".

You can verify this by using the :reg (or :registers) command:

:reg
""   Vim^J
"1   Vim^J
"2   And^J
"3   World^J
"4   Hello^J

So after deleting the four lines one at a time, you could recover the 2nd line ("World") with

"3p

because it's the third-most recent deletion.

share|improve this answer
    
This is perfect; however, what I want the most recent 'yanked' text? –  Alexey Oct 26 '10 at 17:01
    
So you would use: p (which means the same as "0p) –  njd Oct 27 '10 at 18:30
    
Also pay attention to the special registers, especially "*" and "+", when you read :help registers. Very useful. –  Daniel Andersson Feb 15 '12 at 9:09
    
Gods, you learn something new every day as a vimmer. It's great. Thanks, @njd. –  elliottcable Nov 22 '12 at 16:42

In addition to njd's answer, this can be simplified with the YankRing plugin. As well as making it easier to browse the previous yanks, you can configure some keys to allow you to pop previous yanks off the 'stack'. This allows you to do:

yy    " Copy first line
yy    " Copy second line
yy    " Copy third line
yy    " Copy fourth line
" Assumes you've mapped ,p to be the pop command: choose your preferred key or key-combination
,p    " Paste fourth line and pop it off the Yank Ring
,p    " Paste third line and pop it off the Yank Ring
,p    " Paste second line and pop it off the Yank Ring
,p    " Paste first line and pop it off the Yank Ring
share|improve this answer
1  
Could you add how to map ,p to pop the previous yank? –  Andrew Wood May 2 '13 at 19:47

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.