For example, I have:
rm -f $(NAME).elf $(name).d
where the second 'name' is a typo, and should also be 'NAME'.
So on 'N', I did yw, and then moved to 'n'.
I realised that if I now hit cw to change it, I'll be in insert mode - but I thought ah well, it's only one extra key (ESC) and then I can just p the corrected version in.
But in that case, p did exactly what u would have done, it put 'name' back. I guess because the 'old text' is loaded into the register on change too, which I didn't realise.
Is there a "replace with register" command that can be applied to a word/letter/etc.?
I need this so often, I wrote a plugin to simplify and allow maximum speed: ReplaceWithRegister.
This plugin offers a two-in-one
gr
command that replaces text covered by a {motion} / text object, 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. It transparently handles many corner cases and allows for a quick repeat via the standard.
command. Should you not like it, its page has links to alternatives.Your example
With
NAME
yanked into the default register, and the cursor on then
, just usegre
.gr
invokes the command, ande
is the motion that covers the entirename
to be replaced.after you
yw
onNAME
and moved toname
you can do:or golf abit:
vep
Yet another way:
or
This would allow for repeating with
.
without the use of any plugin, as you mentioned on the comments that you are currently avoiding them.You could simply change the case of
name
withgUiw
.