Replacing text based on whats in the current search register is a quite handy tool that I use often. I believe I picked this tip up from Nic Janetakis, check out his YouTube channel for some amazing vim tips.
If there is one thing that I Like most about vim it's the ability to hack on it and make it work well for you.
Replacing text in vim
Vim can often be a bit verbose, but that's ok because we can hack on it, and make our own shortcuts and keybindings. For instance, finding and replacing text requires using a command at the vim command-line :
. Replacing foo with
bar looks like this :%s/foo/bar/g
, the final g means all of the foos, not just the first one on the line.
making it better
I have a keybinding in my init.vim
that will allow me to search for a pattern with the usual /
character, page through them as normal with n
and N
, but when I press <C-R>
it will populate the replace command for me so that all I need to do is type out the new text.
nnoremap <c-r> :%s/<C-R>///g<Left><Left>
Note on the <C-R>/
In command mode :
vim allows you to paste any text from any register into the current command. The <C-R>/
will paste the text from the current search register into the command.
<C-R>
in command mode can paste text from any register, you can see what registers are in use with the :reg
command. There are a lot of them and many get populated automatically as you yank text or create macros.
Also see how to use to save macros to key bindings easily