Vim Replace Visual Star

edit ✏️


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 Nick 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