Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to insert a word/text in the beginning of each line [duplicate]

Tags:

vim

Just want to insert a word or text at the beginning of range of lines, or the entire file. How do it in vim?

like image 626
vehomzzz Avatar asked Oct 20 '09 17:10

vehomzzz


People also ask

How do you insert a word at the beginning of each line in Word?

Another good, more interactive method is to use visual block mode (ctrl-V) to select the first column, then I to insert - type what you need, hit escape, and it'll be added to all the lines. This of course works in any column, not just the first, and you can also use A to append, or c or d . Err....


2 Answers

The command:

:%s/^/foo: / 

...inserts foo: (including a trailing space) at the beginning of each line.

For a range you can use line numbers:

:10,20s/^/foo: / 

...will do it for line 10 to 20.

My preferred way to do it for a range of lines is this: move the cursor to the first line of the range, then enter ma to set the marker a to the current line. Move to the end of the range and enter

:'a,.s/^/foo: / 
like image 127
tangens Avatar answered Oct 08 '22 04:10

tangens


I've become much more accustomed to use visual blocks for this kind of thing:

  • Move to the start of the first line in your range (gg for first line, ^ to move to the start)
  • <C-V>
  • Move down to the last line in your range
  • Ifoo<ESC>

That would insert foo at the start of each line.

like image 39
Walter Avatar answered Oct 08 '22 06:10

Walter