2012-01-11 46 views
8

Tôi muốn định dạng lại tệp của mình để chiều rộng tối đa là 79. Tôi đã làm :set tw=79gggqG và kết quả không phải là những gì tôi mong đợi. Khi một dòng nhỏ hơn 79 col, các ký tự từ dòng bên dưới nó di chuyển lên và các đường với hơn 79 col không chia thành hai dòng.định dạng chiều rộng văn bản vim

chỉnh sửa: Vâng tôi đã bị nhầm lẫn ở chỗ nó KHÔNG vi phạm đường dây trên 79 ngoại trừ trong dòng có dấu hoa thị.

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

Bên cạnh đó nó vẫn di chuyển nhân vật lên khi dòng có < 79.

+0

Nó hoạt động cho tôi theo hướng dẫn của bạn, nhưng hãy kiểm tra xem các dòng đó có bị vỡ hay không. Ví dụ: url sẽ giữ nguyên định dạng ban đầu của chúng sau độ rộng đó. – Birei

Trả lời

7

Một giải pháp khả thi, mặc dù không phải là giải pháp tốt nhất.

Không xác định formatexpr và để cho bên ngoài fold chương trình định dạng văn bản của bạn thành độ rộng 79 ký tự.

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

Và bây giờ:

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

Và loại bỏ trước những kí tự xuống dòng (^ M):

:%s/\r//g 

Trong thử nghiệm của tôi nó đã thay đổi một số ký tự có dấu và một số dòng khác là đọc sai, nhưng hãy thử nó. Khác bạn có thể viết chức năng định dạng của riêng bạn và sử dụng nó với tùy chọn formatexpr.

+0

Điều đó làm việc mặc dù không hoàn hảo. Từ đã bị cắt giảm một nửa nhưng đó không phải là một vấn đề lớn. – deadghost

1

Đặt dòng trống giữa các đoạn khác nhau. Sau đó thực hiện định dạng lại.

+0

Nó không gửi các ký tự lên một dòng khi tôi thêm các dòng trống giữa mỗi cặp dòng nhưng nó không thực sự chia các dòng dài hơn của tôi thành 79 dòng col. – deadghost

Các vấn đề liên quan