Niewyjaśniony problem wcięcia gq


11

Wstawiam ten tekst do Vima:

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.

następnie wizualnie zaznaczam wszystkie te linie i naciskam gq. Treść staje się:

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.

Wyjaśnij mi, dlaczego na początku ostatnich czterech wierszy jest ta biała spacja. Czy to możliwe, że pierwsze słowo ( for) w piątym wierszu, które w niektórych językach programowania uruchamia forpętlę, sprawia, że ​​Vim uważa, że ​​powinien rozpocząć nowy wcięty blok kodu, nawet jeśli te wiersze znajdują się w niezapisanym pliku lub pliku Markdown ? Jak mogę uniknąć tego zachowania i gqprzestać wstawiać ten biały znak?

Moje commentsustawienie ma wartość domyślną: s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-. Możesz zobaczyć mój .vimrcplik tutaj .

Aktualizacja: Opcja My fo( formatoptions) ma wartość tcq, formatexpra formatprgopcje i są puste.


A jeśli plik zostanie zapisany / nie nowy, jakaś różnica?
Gabriel Petrovay

To jest to samo zachowanie.
silviubogan

Następnie możesz usunąć te informacje z tekstu, aby uprościć problem.
Gabriel Petrovay

@GabrielPetrovay, dziękuję za opinie! :-)Zaktualizowałem pytanie.
silviubogan

jaka jest twoja opcja „fo” oraz „formatexpr” i formatprg?
Christian Brabandt

Odpowiedzi:


18

Problem polega na tym, że masz ustawione smartindentw twojej ~/.vimrc. W smartindentopcji powoduje Vima założyć, że tekst jest trochę C-jak język programowania, gdy wcięć. Między innymi traktuje to forjak słowo kluczowe i zapewnia dodatkowy poziom wcięcia w następnej linii. Widzieć

:help 'smartindent'
:help 'cinwords'
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.