2012-01-11 13 views
8

Chcę sformatować mój plik, aby maksymalna szerokość linii wynosiła 79. Zrobiłem :set tw=79 i gggqG, a wyniki nie były zgodne z oczekiwaniami. Kiedy linia jest mniejsza niż 79 col, znaki z poniższej linii przesuwają się w górę, a linie z ponad 79 kolami nie dzielą się na dwie linie.vim szerokość tekstu reformat

edytuj: Cóż, byłem półmokrem w tym, że łamie linie powyżej 79, z wyjątkiem linii z gwiazdkami.

--CONVENTIONS************************************************************************************** 

Ponadto nadal porusza się znaki, gdy linia ma < 79.

+0

To działa dla mnie zgodnie z instrukcjami, ale sprawdź, czy linie są łamliwe. Na przykład adresy URL zachowają swój pierwotny format po tej szerokości. – Birei

Odpowiedz

7

Jedno z możliwych rozwiązań, choć nie najlepsze.

Nie zdefiniuj formatexpr i pozwól, aby zewnętrzny program fold sformatował twój tekst na szerokość 79 znaków.

:set formatexpr= 
:set formatprg=fold\ -w\ 79 

A teraz:

gg    # Go to beginning of file. 
gq    # Format until... 
G    # End of file. 

I ostatni usunąć te powrotu karetki (^ M):

:%s/\r//g 

W moim teście zmienił pewne znaki akcentowane i inne linie były zniekształcone, ale spróbuj sam. Ewentualnie możesz napisać własną funkcję formatu i użyć jej z opcją formatexpr.

+0

To zadziałało, chociaż nie było idealne. Słowa zostały przecięte na pół, ale to nie jest wielka sprawa. – deadghost

1

Włóż pustą linię między poszczególnymi akapitami. Następnie wykonaj reformat.

+0

Nie wysyła znaków po linii, gdy dodaję puste linie między każdą parą linii, jednak nie podzieli moich dłuższych linii na linie 79 kolców. – deadghost

Powiązane problemy