indentation – Problema de sangría gq inexplicable

Pregunta:

Inserto este texto en 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.

luego selecciono visualmente todas estas líneas y gq . Los contenidos se convierten en:

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.

Explíqueme por qué hay ese espacio en blanco al comienzo de las últimas cuatro líneas. ¿Es posible que la primera palabra ( for ) en la quinta línea, que en algunos lenguajes de programación inicia un bucle for , haga que Vim piense que debería comenzar un nuevo bloque de código sangrado, incluso si estas líneas están en un archivo no guardado o en un ¿Archivo de rebajas? ¿Cómo puedo evitar este comportamiento y hacer que gq deje de insertar ese espacio en blanco?

La configuración de mis comments tiene el valor predeterminado: s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- . Puedes ver mi archivo .vimrc aquí .

Actualización: Mi opción fo ( formatoptions ) tiene el valor tcq , las opciones formatexpr y formatprg están vacías.

Respuesta:

El problema es que ha configurado smartindent en su ~/.vimrc . Las opciones de sangría smartindent hacen que Vim asuma que su texto es un lenguaje de programación similar a C al sangrar. Entre otras cosas, trata for como una palabra clave y proporciona un nivel adicional de sangría para la siguiente línea. Ver

:help 'smartindent'
:help 'cinwords'

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım