Vim Tips Wiki
Register
(Correct typo and capitalize category name; I'm not so sure about this one but I'll leave it for now to see if there are any other tips that might fall into this category)
(Adjust previous/next navigation)
Line 8: Line 8:
 
|version=7.0
 
|version=7.0
 
|subpage=/200804
 
|subpage=/200804
|category1=
+
|category1=Registers
 
|category2=
 
|category2=
 
}}
 
}}
Line 41: Line 41:
   
 
==Comments==
 
==Comments==
[[Category:Registers]]
 

Revision as of 02:56, 20 July 2009

Tip 1562 Printable Monobook Previous Next

created April 29, 2008 · complexity basic · author Benshi · version 7.0


This tip explains how to cycle between several registers, while accessing their content through the standard "unnamed" register (@").

To easily swap between different registers it is convenient to map a key to move the registers in a "circular list". The following mapping illustrates the idea:

:nnoremap <Leader>s :let @x=@" \| let @"=@a \| let @a=@b \| let @b=@x<CR>

Now you can cycle between the registers "", "a, "b by pressing \s (assuming the default backslash for the leader key).

  • :let @a=@b copies register "b to register "a.
  • | separates Ex commands; \ escapes the pipe for the map command.

This is also useful if you want to copy between the xclipboard and the unnamed standard register of Vim:

:nnoremap <Leader>s :let @a=@" \| let @"=@+ \| let @+=@a<CR>

Another usage can be found in cycling through the cut/copy history, i.e. cycling through the numbered registers.

To see what it's changing, you could modify the command like this:

:nnoremap <Leader>s :let @x=@" \| let @"=@a \| let @a=@b \| let @b=@x \| reg "ab<CR>

References

Comments