Substitute characters and lines easily
From Vim Tips Wiki
Tip 81 Previous Next created June 21, 2001 · complexity basic · author Anon · version 5.7
I was just editing a file that contained the same leading string on many lines.
foo_bar_baz1=a foo_bar_baz1=abc674 foo_bar_baz1=qrs foo_bar_baz1=m1 foo_bar_baz1=bz90 foo_bar_baz1=bc
Needing to only substitute a portion of the string, I referred to a VIM reference card and discovered a command answering my need exactly. The s command is used to subsitute a certain number of characters. In my example file above, if I only needed to subsititute the characters foo_bar, I set the cursor on the first character where I'd like the subsitution to begin and type 7s. VIM drops the characters foo_bar and goes to insert mode, waiting for the substitution text.
After years of using vi and VIM and always deleting multiple lines in order to replace them, I just discovered the S command. If you need to subsitute three lines of text, simply type 3S. VIM drops the three lines and goes into insert mode, waiting for the subsitution text.
[edit] Comments
Of course, if you're lazy like me and you don't want to count that there are 7 characters that you want to replace, you could use the c command and use a motion to specify how much to kill. For example, in the previous example, I'd type c2t_ to kill foo_bar and to be left in insert mode.
You could select the "foo_bar" characters with Ctrl+V (Visual Block – Ctrl+Q on Windows), press "c" to change the block, make your change to the first line, and press Esc. All the lines you selected will be changed the same way.
