2013-09-21 31 views
11

Điều này nghe giống như một câu hỏi rất cơ bản mà có lẽ có một giải pháp rõ ràng, tôi không tìm thấy nó, thật không may.Làm thế nào để giữ vim khỏi vi phạm chuỗi ký tự?

Làm cách nào để giữ vim khỏi vi phạm (nhập một dòng mới) ở giữa chuỗi? tôi gõ vào một danh sách các chuỗi, và nó trông như thế này:

a=['a string', 'b string', 'c 
string'] 

Tôi thích ngắt dòng, tôi không muốn vim chỉ để quấn dây chuyền và tiếp tục trên dòng biên tập tiếp theo. Tôi muốn các dòng của tôi dài khoảng 80 ký tự mà không cần nhập các dòng mới.

Những gì tôi muốn là một trong hai

  1. Đừng phá vỡ bất kỳ chuỗi, thậm chí nếu nó có một khoảng trắng

  2. Phá vỡ chuỗi sử dụng ngầm nối chuỗi, tức là đóng chuỗi và bắt đầu một chuỗi mới trên dòng mới

  3. Break ngay trước 'c string'

Các giải pháp gần nhất tôi đã tìm thấy không phải là rất hữu ích:

Is there any way to get vim to auto wrap python strings at 79 chars?

how to configure vim to smartly wrap python strings?

Vim: Inter-String Line Breaking

Hiện nay 'J' là một trong những chìa khóa sử dụng nhiều nhất để sửa chữa dây bị hỏng.

+4

Lưu ý: ': set tw = 0' sẽ tắt hoàn toàn từ. –

+1

có thể trùng lặp của [Làm thế nào để làm cho vim không phá vỡ chuỗi khi tự động định dạng?] (Http://stackoverflow.com/questions/10615908/how-to-make-vim-not-break-strings-when-autoformating) – glts

+0

Cảm ơn, Rob. Điều đó có nghĩa là bạn phải thêm các dấu ngắt dòng theo cách thủ công, phải không? Vì vậy, nếu tôi có một dòng với 70 ký tự và thêm một số chi tiết để bắt đầu, tôi cần phải tìm break gần nhất với 80 ký tự bằng tay và sau đó nhấn Enter. Tôi không thể sử dụng gq, bởi vì nó có cùng một vấn đề. – Dan

Trả lời

0

Dưới đây là những gì tôi làm để quấn tất cả các dòng 80 ký tự mà không vi phạm bất kỳ từ nào, và duy trì dòng ngắn:

:set formatoptions+=w 
:set tw=80 
gggqG 

Bạn cũng có thể sử dụng các bản đồ sau đây để định dạng đoạn hiện nay:

:nnoremap Q gqip 

hy vọng điều đó sẽ hữu ích.

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