Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a file, say

Hello A, b, c, d,
Hello A, b, c, d,
Hello A, b, c, 
d,
Hello A, b, c, d,
Hello A, b, c, 
d,
Hello A, b, c, d,
Hello A, b, c, d,

and I'd like it to look like

Hello A, b, c, d,
Hello A, b, c, d,
Hello A, b, c, d,
Hello A, b, c, d,
Hello A, b, c, d,
Hello A, b, c, d,

So I might run the command :g/^d/j and that will join the lines - but it joins the matched lines to the line after - I'd like to join the matched lines to the line before - how might I do this?

share|improve this question
up vote 4 down vote accepted

You need to be a little more creative with your pattern:

:g/\nd/j

We are essentially matching the line above the line with the single d.

Another solution:

:g/^d/-1j

We move one line up before we do the join.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .