:%norm! gww
Isso aplica o normal command gww (que formata a linha atual como gw ) em todo o buffer, sem considerar mapeamentos personalizados (para evitar problemas se, por exemplo, gw tiver sido mapeado para algo mais).
Veja
-
:help :% -
:help :norm -
:help gww
Essa alternativa é conforme a sugestão de Ben nos comentários e é mais direta do que a solução original, que é salva a seguir, pois pode se ajustar melhor em outras circunstâncias semelhantes, devido à capacidade de correspondência de expressão regular. No caso "combinar todas as linhas", é desnecessariamente bruto.
Aplicando gww em cada linha individual no buffer programaticamente:
:g/^/norm gww
Veja :help :g e :help norm . ^ corresponde ao início de uma linha, o que, na prática, faz com que essa linha seja igual a todas .
Também é possível optar por selecionar apenas linhas maiores que, por exemplo, 60 caracteres com
:g/\%>60v/norm gww
(veja :help \%< ), mas na prática, gww só irá reformatar linhas maiores que textwidth , então pode não importar muito em nenhuma velocidade nem resultado.
(Estou usando v para "coluna virtual" em vez de c para "coluna", pois o último realmente calcula um certo número de bytes na linha. Isso pode levar a resultados inesperados ao usar codificações multibyte, o que geralmente é um motivo para ser cauteloso. Na prática, não é um problema real pelo mesmo motivo acima, considerando que gww não irá reformatar linhas menores que textwidth de qualquer maneira.)