Непояснена проблема з відступом gq


11

Я вставляю цей текст у 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.

то я візуально вибираю всі ці рядки і натискаю gq. Вміст стає:

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.

Будь ласка, поясніть мені, чому є цей пробіл на початку останніх чотирьох рядків. Чи можливо, що перше слово ( for) у п’ятому рядку, яке в деяких мовах програмування починає forцикл, змушує Vim думати, що він повинен запустити новий відрізний блок коду, навіть якщо ці рядки знаходяться у незбереженому файлі чи у файлі Markdown ? Як я можу уникнути такої поведінки та gqперестати вставляти цей пробіл?

Моя commentsустановка має значення за замовчуванням: s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-. Ви можете побачити мій .vimrcфайл тут .

Оновлення: параметр My fo( formatoptions) має значення tcq, formatexprа formatprgпараметри порожні.


І якщо файл збережено / не новий, якась різниця?
Габріель Петрова

Це та ж поведінка.
silviubogan

Потім ви можете вилучити цю інформацію з тексту, щоб зробити проблему простішою.
Габріель Петрова

@GabrielPetrovay, дякую за відгук! :-)Я оновив питання.
silviubogan

який у вас варіант 'fo' та 'formatexpr' та formatprg?
Крістіан Брабандт

Відповіді:


18

Проблема в тому, що ви встановили smartindentу своєму ~/.vimrc. Ці smartindentпараметри змушують Vim вважати, що ваш текст є якоюсь C-подібною мовою програмування при відступі. Крім усього іншого, він розглядає forяк ключове слово і надає додатковий рівень відступу рядку, що слідує. Побачити

:help 'smartindent'
:help 'cinwords'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.