Deshabilitar sangría parcial de HTML en Vim

9

Advertencia: no soy un desarrollador web.

Dicho esto, hay raras ocasiones en las que tengo que editar HTML. Cuando lo hago, noté un comportamiento en Vim que no me gusta y espero poder cambiar a través de la configuración.

Cuando codifico, tiendo a ajustar líneas de 80 caracteres. Esto a menudo significa que tengo que dividir las etiquetas HTML entre líneas. Lo que me gustaría es una sangría sensata cuando esto suceda. Entonces, por ejemplo, podría tener el siguiente código y me gustaría sangrarlo de manera similar:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
   src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
   class="ri" alt="This is an image"></a>

Pero, por defecto, la autoindentación de Vim sangrará las etiquetas HTML divididas al mismo nivel que el inicio de la etiqueta HTML en la línea anterior. En otras palabras, obtengo algo como lo siguiente:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
                                                              src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
                                                              class="ri" alt="This is an image"></a>

Que es exactamente lo que no quiero. Mientras escribo, descubro que constantemente tengo que regresar y arreglar hendiduras como esta.

Me gusta el autoindent de Vim en general, y no quiero simplemente deshabilitarlo universalmente. Prefiero deshabilitar o cambiar la sangría de la etiqueta HTML dividida, pero no puedo entender cómo.

Es posible cambiar esto?

(Intenté buscar esta pregunta en Stackoverflow, pero no pude encontrarla. Si es un duplicado, indíqueme el original).

EDITAR: la solución se encontró aquí https://www.reddit.com/r/vim/comments/3ogbna/disabling_partial_html_indentation_in_vim/cvy8p3u

EDITAR # 2: De acuerdo, la solución anterior no resolvió el problema. Aún está ahí.

criswell
fuente
1
Me parece sorprendente el ejemplo de sangría que dio en el último fragmento: lo he probado en mi instalación de Homebrew de vainilla (versión 7.4) y funciona como esperaba: cuando presiono <Enter> al final de la línea, con autoindentvim habilitado sangra la siguiente línea como la línea que acabo de terminar. Entonces, supongo que puede tener un complemento que altera el modelo de sangría predeterminado.
Vlad GURDIGA
@VladGURDIGA, sí, estoy empezando a sospechar eso. Tendré que sumergirme en mi vimrc y ver qué se me ocurre. Mi vimrc está aquí, por cierto github.com/criswell/meh/blob/master/vim/.vimrc
criswell
también verifique ~ / .vim / ya que todo lo que hay también está cargado, generalmente ftplugins, colores y otras cosas de carga automática. 8-)
Vlad GURDIGA
También pregunté en reddit, y obtuve esta respuesta, que resultó solucionarlo reddit.com/r/vim/comments/3ogbna/… . Actualizaré mi pregunta en consecuencia.
criswell
¡Agradable! ¡Gracias por el seguimiento! :)
Vlad GURDIGA

Respuestas:

4

Recomiendo el complemento tidy-html5 .


Como desarrollador web, también recomiendo alinear las etiquetas HTML de forma un poco diferente,

AirBnb React Styleguide (más legible)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img
    src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
    class="ri"
    alt="This is an image"
  >
</a>

Guía de estilo HTML de Google (más común)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
       class="ri" alt="This is an image">
</a>

Esto realmente ayudará a los formateadores a evitar sangrías locas.

Atav32
fuente