vim отступ HTML теги с атрибутами в отдельных строках - PullRequest
0 голосов
/ 04 июля 2019

Я пишу html / vue-код с помощью vim, но обнаружил, что функция автоматического отступа не работает должным образом, особенно с вложенными тегами и атрибутами, разбитыми на несколько строк.

Я прочитал стандарт кодирования согласован для длинных тегов html, и я думаю, было бы неплохо, если бы vim мог поддерживать такой стиль отступов.Я нашел несколько похожих вопросов, таких как this , но они не дают удовлетворительных ответов.Я также попробовал html5 плагин для vim, но, похоже, это не очень помогает.

Например, я хотел бы, чтобы vim делал отступ, как показано ниже:

<template>
    <my-tag 
        attr1
        attr2
        attr3>
        <my-sub-tag
            attr1
            attr2
            attr3>
        </my-sub-tag>
    </my-tag>
</template>

Но в настоящее время, когда я нажимаю gg=G, он отступает примерно так:

<template>
    <my-tag 
     attr1
     attr2
     attr3>
        <my-sub-tag
      attr1
      attr2
      attr3>
        </my-sub-tag>
    </my-tag>
</template>

Есть ли относительно быстрый способ исправить это (например, хороший плагин), или это еще не так?главное беспокойство о vim?

1 Ответ

1 голос
/ 05 июля 2019

Вам не нужно использовать плагин для этого! При использовании gg=G выполняется equalprg (см. : h 'equalprg' ). Когда эта опция не установлена, она использует встроенную равную по умолчанию или встроенную равную, поэтому вы видите странные отступы, так как они не созданы для HTML.

Вы можете использовать внешнюю программу, которая более способна форматировать файлы определенных типов. Например, для html вы можете использовать html-beautify (npm install --global html-beautify) для css, json и других, которые вы используете prettier

Вы можете сделать следующее, чтобы использовать внешнюю программу.

:setlocal equalprg=html-beautify -f - -I -s 2

более новые версии prettier также поддерживают форматирование HTML.

:setlocal equalprg=prettier\ --stdin\ --parser=html

добавьте это к ~/.vim/after/ftplugin/html.vim и используйте ту же команду gg=G для форматирования строк.

Также см. :h 'formatprg' и команды :h gq.

...