Replace text with the contents of a register.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Version 1.42 Oct 31, 2014
plugin Version 1.40 Nov 29, 2013


This is a mirror of

Replacing an existing text with the contents of a register is a very common
task during editing. One typically first deletes the existing text via the
d, D or dd commands, then pastes the register with p or P. Most of
the time, the unnamed register is involved, with the following pitfall: If you
forget to delete into the black-hole register ("_), the replacement text is

This plugin offers a two-in-one command that replaces text covered by a
{motion}, entire line(s) or the current selection with the contents of a
register; the old text is deleted into the black-hole register, i.e. it's
gone. (But of course, the command can be easily undone.)

The replacement mode (characters or entire lines) is determined by the
replacement command / selection, not by the register contents. This avoids
surprises like when the replacement text was a linewise yank, but the
replacement is characterwise: In this case, no additional newline is inserted.

- ReplaceWithSameIndentRegister.vim (vimscript #5046) is a companion plugin
  for the special (but frequent) case of replacing lines while keeping the
  original indent.
- LineJugglerCommands.vim (vimscript #4465) provides a similar :Replace [["]x]
  Ex command.

- regreplop.vim (vimscript #2702) provides an alternative implementation of
  the same idea.
- operator-replace (vimscript #2782) provides replacement of {motion} only,
  depends on another library of the author, and does not have a default
- Luc Hermitte has an elegant minimalistic visual-mode mapping in
- EasyClip ( changes the delete
  commands to stop yanking, introduces a new "m" command for cutting, and also
  provides an "s" substitution operator that pastes register contents over the
  moved-over text.

[count]["x]gr{motion}   Replace {motion} text with the contents of register x.
                        Especially when using the unnamed register, this is
                        quicker than "_d{motion}P or "_c{motion}<C-R>"
[count]["x]grr          Replace [count] lines with the contents of register x.
                        To replace from the cursor position to the end of the
                        line use ["x]gr$
{Visual}["x]gr          Replace the selection with the contents of register x.