Masalah indentasi gq yang tidak dapat dijelaskan

11

Saya memasukkan teks ini ke 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.

maka saya secara visual memilih semua baris ini dan tekan gq. Isi menjadi:

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.

Tolong jelaskan kepada saya mengapa ada spasi putih di awal empat baris terakhir. Mungkinkah kata pertama ( for) pada baris kelima, yang dalam beberapa bahasa pemrograman memulai satu forloop, membuat Vim berpikir itu harus memulai blok kode indentasi baru, bahkan jika baris ini berada dalam file yang belum disimpan atau dalam file penurunan harga ? Bagaimana saya bisa menghindari perilaku ini dan membuat gqberhenti memasukkan spasi putih itu?

Saya commentspengaturan memiliki nilai default: s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-. Anda dapat melihat .vimrcfile saya di sini .

Pembaruan: Opsi fo( formatoptions) saya memiliki nilai tcq, formatexprdan formatprgopsi kosong.

silviubogan
sumber
Dan jika file tersebut disimpan / bukan baru, bedanya?
Gabriel Petrovay
Itu adalah perilaku yang sama.
silviubogan
Kemudian Anda dapat menghapus informasi itu dari teks untuk membuat masalah lebih sederhana.
Gabriel Petrovay
@GabrielPetrovay, terima kasih atas umpan baliknya! :-)Saya memperbarui pertanyaan.
silviubogan
apa pilihan 'fo' Anda dan 'formatexpr' dan opsi formatprg?
Christian Brabandt

Jawaban:

18

Masalahnya adalah bahwa Anda telah mengatur smartindentdi ~/.vimrc. The smartindentPilihan menyebabkan Vim untuk menganggap bahwa teks Anda adalah beberapa C-seperti bahasa pemrograman saat indentasi. Antara lain, itu memperlakukan forseperti kata kunci dan memberikan tingkat tambahan lekukan ke baris berikut. Lihat

:help 'smartindent'
:help 'cinwords'
garyjohn
sumber