2012-02-03 13 views
23

Khi tôi đang viết một dòng văn bản dài trong vim (chẳng hạn như một đoạn trong mủ cao su), nó kết thúc văn bản của tôi thành nhiều dòng tốt. Tuy nhiên, nếu sau đó tôi cố gắng điều hướng các dòng này bằng 'j' và 'k' (hoặc các mũi tên lên/xuống), nó sẽ bỏ qua toàn bộ đoạn văn. Tôi đã khắc phục sự cố này bằng cách làm nổi bật đoạn văn và nhấn gq. Dòng chèn này được ngắt ở cuối mỗi dòng.Vim auto line-break

Câu hỏi của tôi là, có cách nào để tự động hóa điều này, vì vậy tôi không phải giữ văn bản làm nổi bật và nhấn gq?

+0

Bạn có yêu cầu quấn từ để tự động chèn ngắt dòng không? – JaredPar

Trả lời

26

Bạn cần lùi lại một chút và sử dụng gjgk đi xuống và xuống bên trong các dòng được bao bọc.

Kể từ gjgk làm việc chính xác giống như jk trong dòng không bọc bạn có thể yên tâm bản đồ j hoặc <down> để gjk hoặc <up> để gk làm cho nó tất cả liền mạch.

- EDIT -

Có nó không địa chỉ vấn đề ngay lập tức Eddy nhưng nó giải quyết vấn đề ban đầu của mình (chuyển động thẳng đứng trong dây chuyền bọc) mà dẫn anh đến một workaround nghèo đó, đến lượt nó, đưa anh ta trong tình huống này.

+0

Cảm ơn, điều này là tốt bởi vì tôi sử dụng kiểm soát phiên bản svn cho tài liệu latex của tôi, vì vậy bây giờ diff sẽ không hiển thị tải của dòng đã thay đổi do linebreaks và gói từ. – Eddy

37

Bạn có thể giới hạn độ rộng của một đường với tùy chọn textwidth (xem :help tw).

Ví dụ, nếu bạn muốn giới hạn chiều rộng tới 80 cột, bạn có thể sử dụng:

:set tw=80 

Với tùy chọn này, khi bạn sẽ gõ một cái gì đó dài hơn 80 cột, Vim sẽ tự động chèn một dòng mới tính cách.

+18

Nhưng có một vấn đề: khi thêm từ mới vào một dòng hiện có, bạn sẽ phải chọn đoạn văn và nhấn 'gq' để căn chỉnh lại nó. Bạn có thể tự động hóa điều này bằng cách gõ ': set fo + = a'. Đọc ': help fo' và': help fo-table' về điều này. Nhưng, thật không may, chế độ này (sau khi ': set fo + = a') hoạt động không tốt lắm và cũng có một số vấn đề. –

+0

Ngoài ra, nó không phá vỡ các đường mà không có khoảng trắng. Chỉ cần nghĩ rằng nó đáng nói đến. – cprn