Wikia

Vim Tips Wiki

Substitute characters and lines easily

Talk0
1,613pages on
this wiki
Revision as of 05:12, July 13, 2012 by JohnBot (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Tip 81 Printable Monobook Previous Next

created 2001 · complexity basic · version 5.7


I was 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.

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.

CommentsEdit

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.


Around Wikia's network

Random Wiki