Problème d'indentation GQ inexpliqué

11

J'insère ce texte dans 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.

puis je sélectionne visuellement toutes ces lignes et appuie sur gq. Le contenu devient:

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.

Veuillez m'expliquer pourquoi il y a cet espace au début des quatre dernières lignes. Est-il possible que le premier mot ( for) sur la cinquième ligne, qui dans certains langages de programmation démarre une forboucle, fait penser à Vim qu'il devrait démarrer un nouveau bloc de code en retrait, même si ces lignes se trouvent dans un fichier non enregistré ou dans un fichier Markdown ? Comment puis-je éviter ce comportement et faire gqcesser d'insérer cet espace blanc?

Mon commentsparamètre a la valeur par défaut: s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-. Vous pouvez voir mon .vimrcdossier ici .

Mise à jour: mon option fo( formatoptions) a la valeur tcq, les options formatexpret formatprgsont vides.

silviubogan
la source
Et si le fichier est enregistré / pas nouveau, quelle différence?
Gabriel Petrovay
C'est le même comportement.
silviubogan
Ensuite, vous pouvez supprimer ces informations du texte afin de simplifier le problème.
Gabriel Petrovay
@GabrielPetrovay, merci pour les commentaires! :-)J'ai mis à jour la question.
silviubogan
quelle est votre option 'fo' et 'formatexpr' et option formatprg?
Christian Brabandt

Réponses:

18

Le problème est que vous avez installé smartindentvotre ~/.vimrc. Les smartindentoptions font que Vim suppose que votre texte est un langage de programmation de type C lors de l'indentation. Entre autres choses, il se traite forcomme un mot-clé et donne un niveau supplémentaire d'indentation à la ligne suivante. Voir

:help 'smartindent'
:help 'cinwords'
garyjohn
la source