Reflowing comment blocks with vim

oalders picture oalders · Dec 8, 2011 · Viewed 7.6k times · Source

I'm cleaning up someone else's code and working with vim. I'd like to reflow the comments so that they're formatted consistently.

For example:

    # one two three four five six seven
    # eight nine
    # ten eleven twelve thirteen fourteen
    # fifteen sixteen seventeen 
    # eighteen
    # nineteen

Would become:

    # one two three four five six seven eight nine ten eleven 
    # twelve thirteen fourteen fifteen sixteen seventeen
    # eighteen nineteen

So, a workflow that would easily uncomment the code, reflow the paragraph and then re-comment the code with the indentation preserved. If there is an existing plugin which does exactly this, that would be great.

Answer

Walter picture Walter · Dec 8, 2011

The gq command takes comments and indentation into account. I normally use V to visually select the lines (with k and j) and then press gq. The textwidth option is used to format the lines at the appropriate length. See :help gq for more information.