Duplicate each line in VI

Use the global command g to operate on every line in the file:

:g/^/norm yyp

The g command will operate on all lines that match a pattern. ^ is a pattern which will match any line. norm executes the command yyp, which yanks the current line, and pastes it. :g/^/norm Yp will also work.

See :help global for more details about the command, and see also this vim wiki page on g.


Try this simple one:

:g/^/norm yyp

Yet another one(shorter):

:%s/.*/&\r&

Another one:

:%!sed p

I like g/^/t.
The g (for global) command will look for any lines that match a pattern.
The pattern we specified is ^, which will match all lines.
t will copy and paste, and finally
the dot tells it to paste below.

Do I win for brevity?

Tags:

Vim