Vấn đề thụt gq không giải thích được


11

Tôi chèn văn bản này vào Vim:

t tttt ttttttttt tt tttt tt ttt tttttt-tttt-ttttttt
tttttttttttttttttttttttttttttttttttttttttttttttttttttt ttttt ttt ttt tttttt
ttttttt tttt ttttttt: ttttttt tt ttttttt, ttttttt tt tttttt, tttttt tt ttttttt,
tttttt tt tttttt ttt. t tttttt tt ttt (tttt) ttttttt-tttttt-tt-ttttttt tttttt
for the "tttttt in ttttttt" part of the issue (in the previous week I have
worked on the "objects in objects" part). This part is about making it
possible for the end user to add arrays in objects. First of all I checked
that the current implementation allows putting arrays in objects at least
from the schema passed to the plugin constructor.

sau đó tôi trực quan chọn tất cả các dòng này và nhấn gq. Nội dung trở thành:

t tttt ttttttttt tt tttt tt ttt tttttt-tttt-ttttttt
tttttttttttttttttttttttttttttttttttttttttttttttttttttt ttttt ttt ttt tttttt
ttttttt tttt ttttttt: ttttttt tt ttttttt, ttttttt tt tttttt, tttttt tt ttttttt,
tttttt tt tttttt ttt. t tttttt tt ttt (tttt) ttttttt-tttttt-tt-ttttttt tttttt
for the "tttttt in ttttttt" part of the issue (in the previous week I have
    worked on the "objects in objects" part). This part is about making it
    possible for the end user to add arrays in objects. First of all I checked
    that the current implementation allows putting arrays in objects at least
    from the schema passed to the plugin constructor.

Hãy giải thích cho tôi tại sao có khoảng trắng ở đầu bốn dòng cuối cùng. Có thể là từ đầu tiên ( for) trên dòng thứ năm, trong một số ngôn ngữ lập trình bắt đầu một forvòng lặp, khiến Vim nghĩ rằng nó nên bắt đầu một khối mã thụt lề mới, ngay cả khi các dòng này nằm trong tệp chưa được lưu hoặc trong tệp Markdown ? Làm thế nào tôi có thể tránh hành vi này và gqngừng chèn khoảng trắng đó?

commentsCài đặt của tôi có giá trị mặc định : s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-. Bạn có thể xem .vimrctập tin của tôi ở đây .

Cập nhật: Tùy chọn My fo( formatoptions) có giá trị tcq, formatexprformatprgcác tùy chọn trống.


Và nếu tập tin được lưu / không mới, có sự khác biệt nào không?
Gabriel Petrovay

Đó là hành vi tương tự.
silviubogan

Sau đó, bạn có thể xóa thông tin đó khỏi văn bản để làm cho vấn đề đơn giản hơn.
Gabriel Petrovay

@GabrielPetrovay, cảm ơn bạn đã phản hồi! :-)Tôi cập nhật câu hỏi.
silviubogan

tùy chọn 'fo' của bạn và 'formatexpr' và formatprg là gì?
Christian Brabandt

Câu trả lời:


18

Vấn đề là bạn đã thiết lập smartindenttrong của bạn ~/.vimrc. Các smartindenttùy chọn khiến Vim cho rằng văn bản của bạn là một ngôn ngữ lập trình giống như C khi thụt lề. Trong số những thứ khác, nó xử lý fornhư một từ khóa và cung cấp thêm một mức thụt vào dòng sau. Xem

:help 'smartindent'
:help 'cinwords'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.