DEV Community

loading...
Cover image for Vim Replace Visual Star

Vim Replace Visual Star

waylonwalker profile image Waylon Walker Originally published at waylonwalker.com ・2 min read

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>
Enter fullscreen mode Exit fullscreen mode

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

Discussion (3)

pic
Editor guide
Collapse
pianocomposer321 profile image
pianocomposer321

If you leave the pattern to search for out, vim will automatically re-use the "/ register. So your binding could be shortened to:

nnoremap <c-r> :%s///g<Left><Left>
Enter fullscreen mode Exit fullscreen mode

Since vim makes this so easy, I don't map this to anything myself.

Collapse
waylonwalker profile image
Waylon Walker Author

You just blew my mind, and have saved me many future keystrokes.

Collapse
pianocomposer321 profile image
pianocomposer321

Glad I could be of help!