2012-09-01 38 views
5

Tôi đang tìm một cách thuận tiện để sửa các chú thích có độ dài dòng vượt quá một số ký tự nhất định trong Vim. Tôi tốt với việc làm điều này bằng tay với mã, đặc biệt là vì nó không phải là thường xuyên, cộng với tái cấu trúc đường dài thường là ngôn ngữ, hoặc thậm chí mã kiểu phụ thuộc, nhưng với ý kiến ​​này là tinh khiết drudgery.Sửa các dòng chú thích quá dài trong Vim

Điều gì xảy ra là tôi thường phát hiện một số vấn đề trong nhận xét, chỉnh sửa một hoặc hai từ và dòng tràn ra khỏi giới hạn 80 ký tự. Tôi di chuyển từ cuối cùng sang dòng tiếp theo và sau đó dòng tiếp theo tràn, và cứ thế. Có ai biết một cách để làm điều này tự động trong Vim?

+7

Tôi nghĩ rằng nó chỉ đặt độ rộng = 80, sau đó gq để định dạng lại. –

+0

Ôi trời, tôi không thể tin nó đơn giản, cảm ơn! –

+0

@DeepYellow nhưng có vẻ như nó chỉ * vận chuyển-trả về * khi bạn viết ở cuối dòng, phải không? Nếu bạn thêm văn bản ngay từ đầu, nó sẽ không di chuyển quá văn bản sang dòng tiếp theo. Hay tôi làm sai? –

Trả lời

3

tôi sẽ khuyên bạn nên đặt đoạn mã sau vào vimrc của bạn nếu điều này là một vấn đề thường xuyên:

nnoremap <leader>f gqip 

này bản đồ các phím tắt lãnh đạo f (f là cho "định dạng") để định dạng bình luận (được coi một đoạn văn sau thiết lập một số cờ định dạng) với gq định dạng nhận xét là chiều rộng của tùy chọn hiện tại được đặt là textwidth hoặc tw. Bạn nên đặt độ rộng văn bản trong .vimrc với textwidth=80.

Định dạng khác là điều bạn nên làm, đặc biệt trong trường hợp của bạn bằng cách thêm các cờ acq với formatoptions+=acq. Hãy cẩn thận để xóa cờ t với formatoptions-=t vì điều đó sẽ tự động bao bọc tất cả mã của bạn, không chỉ nhận xét được nhận dạng. Sau khi thực hiện tất cả điều này, bạn sẽ có thể nhấn f và định dạng bên trong chỉ nhận xét, không phân biệt liệu có được bao quanh bởi các dòng trống hay không.

Dưới đây là thông tin có liên quan về định dạng để bạn có thể tự mình lựa chọn.

t  Auto-wrap text using textwidth 

c  Auto-wrap comments using textwidth, inserting the current comment 
    leader automatically. 

r  Automatically insert the current comment leader after hitting 
    <Enter> in Insert mode. 

o  Automatically insert the current comment leader after hitting 'o' or 
    'O' in Normal mode. 

q  Allow formatting of comments with "gq". 
    Note that formatting will not change blank lines or lines containing 
    only the comment leader. A new paragraph starts after such a line, 
    or when the comment leader changes. 

w  Trailing white space indicates a paragraph continues in the next line. 
    A line that ends in a non-white character ends a paragraph. 

a  Automatic formatting of paragraphs. Every time text is inserted or 
    deleted the paragraph will be reformatted. See |auto-format|. 
    When the 'c' flag is present this only happens for recognized 
    comments. 
Các vấn đề liên quan