:%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.)