Vim
Registers
Registers
Vim stores the list of yanked or deleted text in a set of registers. To see what is stored across all registers use the :reg
command.
The ""
register has no name, it is similar to the clipboard. Whatever is copied or deleted is placed in the ""
register automatically.
The numbered registers 0-9
keep a stack of recently copied or deleted text.
To paste an item from a register you use "{reg}p
. For example, to paste an item from register 0
, you use: "0p
💡 Use "0p
for paste copied content that accidentally got replaced because of a delete after a copy. Deleted text automatically goes to ""
register. This replaces any copied text there. The original copied text is register 0
so use "0p
to paste.
Named Registers
You copy items directly to named registers [a-z] by prepending your yank command with the register name. For example, yanking a word to register a
use "ayw
and then "ap
to paste.
If you use a capital letter, [A-Z], the same corresponding named register is used, but the content is appended to the register, not replaced.
📄 Registers are stored in ~/.viminfo
and loaded each time vim starts. So, registers will persist between sessions.
System Clipboard
The +
register is a special register for the system clipboard. This allows you bidirectional copy and paste between Vim and the host OS.
For example, use "+yy
to copy current line to the system clipboard, and "+p
to paste from clipboard to vim buffer.
For system clipboard, Vim requires the clipboard support to be compiled in. Check for clipboard support using :echo has('clipboard')
if the result is 0
than your version does not have it compiled. For Linux, try installing vim-gtk
or similar GUI related package. Neovim has clipboard support by default, but requires xclip
or xsel
to be installed.
See :help registers
for additional information about other special registers.